大型数据库大实验.docx
- 文档编号:25781319
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:28
- 大小:1.36MB
大型数据库大实验.docx
《大型数据库大实验.docx》由会员分享,可在线阅读,更多相关《大型数据库大实验.docx(28页珍藏版)》请在冰豆网上搜索。
大型数据库大实验
(一)Oracle的安装与配置
(1)Oracle11g的安装
1)将两个压缩包解压在一个文件夹之后,打开文件夹,找到setup.exe,双击即可进入安装界面。
2)配置安全更新,电子邮箱不用写,取消默认的“我希望通过MyOracleSupport接收安全更新(W)”单击下一步
3)安装选项,选择“创建和配置数据库”,单击下一步
4)系统类:
选择服务器类,单击下一步
5)网络安全选项:
选择单实例数据库安装,单击下一步
6)安装类型:
选择“高级安装”,单击下一步
7)数据库版本选择:
企业版,单击下一步
8)配置类型:
选择“一般用途/事务处理”,单击下一步
9)数据库标识符,填写数据库名和标识,如下图所示,单击下一步
10)方案口令,选择使用相同口令。
11)完成配置后,单击完成就可以正式安装了,如下图所示
(2)利用DBCA创建数据库
1)欢迎界面,点击下一步
2)选择创建数据库,单击下一步
3)数据库模板,选择一般用途或事务处理
4)数据库标识为自己名字的首字母
5)管理选项
6)数据库身份证明
7)恢复配置
8)链接模式设置为共享
9)数据库存储
10)创建选项
11)创建数据库
12)创建数据库概要
(二)用户与权限管理
(1)表空间的创建
我在D,E盘创建了。
SQL>createtablespaceMYTBSloggingdatafile'D:
\MYTBS1.DBF'size300m;
表空间已创建。
SQL>altertablespaceMYTBSadddatafile'E:
\MYTBS2.DBF'size200m;
表空间已更改。
(2)创建配置文件的创建
SQL>createprofileuserprofilelimit
2password_life_time10
3failed_login_attempts3
4password_lock_time1;
配置文件已创建
查看该配置文件中的资源配置结果,dba_profiles数据字典表
(3)创建用户
新建一个用户ls,设置默认表空间为MYTBS
用户ls的配置文件为userprofile
查看新建的用户默认表空间,dba_users数据字典表
(4)分配权限
为ls用户授权:
赋予创建任何表、创建任何索引的权限,将DBA的角色给新建用户;查看对应的用户获得的权限和角色用数据字典表user_sys_privs,user_tab_privs,user_role_等
SQL>grantconnect,resourcetols;
授权成功。
SQL>grantcreateanytable,createanyindextols;
授权成功。
SQL>grantdbatols;
授权成功。
SQL>connls/1615925195;
已连接。
SQL>select*fromuser_sys_privs;
SQL>select*fromuser_tab_privs;
SQL>select*fromuser_role_privs
;
(5)用新建的帐号登录。
并执行showuser命令,显示当前登录用户
(三)Oracle对象的创建与管理
此系统为图书馆管理系统
(一)需求分析:
一:
普通用户查看个人信息已经更改个人信息,查询书籍,借书操作,还书操作
二:
管理员用户可以添加书籍,更新书籍信息,为用户借书,还书操作。
(二)
数据库设计
1)概念设计:
用户表(卡号,密码,身份类别)
用户信息(卡号,,性别,已借,可借)
已借书目录(卡号,书号)
书籍目录(书号,书名,是否借出)
书籍信息(书号,书名,作者,主题)
2)逻辑结构
ls_user(CardNum,PassWord,Identity)用户表
ls_usermessage(CardNum,UserName,Sex,CBorrow,NBorrow)用户信息
ls_jie(CardNum,BookNum,BookName)已借书目录
ls_book(BookNum,BookName,YON)书籍目录
ls_bookmessage(BookNum,BookName,Author,Theme)书籍信息目录
3)创建代码的实现
1:
创建用户表,ls_user(CardNum,PassWord,Identity)CardNum为主键
SQL>createtablels_user(
2CardNumchar(11)notnull,
3PassWordvarchar(11)notnull,
4Identitychar
(1)default'P',
5constraintf_Identity_ckcheck(Identityin('U','P')),
6constraintPK_userprimarykey(CardNum)
7);
表已创建。
2:
创建用户信息表
ls_usermessage(CardNum,UserName,Sex,CBorrow,NBorrow)用户信息
CardNum为外键,依赖ls_user表中的CardNum,性别默认为男,约束只能选男、女
SQL>createtablels_usermessage(
2CardNumchar(11)notnull,
3UserNamevarchar(8)notnull,
4Sexchar(4)default'男',
5CBorrownumberdefault6,
6NBorrownumberdefault0,
7constraintf_Sexcheck(Sexin('男','女')),
8constraintFK_userforeignkey(CardNum)
9referencesls_user(CardNum)
10);
表已创建。
ls_book(BookNum,BookName,YON)书籍目录
SQL>createtablels_book(
2BookNumchar(11)notnull,
3BookNamevarchar(20)notnull,
4YONchar
(1)default'N',
5constraintf_YONcheck(YONin('Y','N')),
6constraintPK_Bookprimarykey(BookNum)
7);
表已创建。
ls_jie(CardNum,BookNum,BookName)已借书目录
SQL>createtablels_jie(
2CardNumchar(11)notnull,
3BookNumchar(11)notnull,
4constraintFk_CardNumforeignkey(CardNum)
5referencesls_user(CardNum),
6constraintFK_BookNumforeignkey(BookNum)
7referencesls_book(BookNum)
8);
表已创建。
ls_bookmessage(BookNum,BookName,Author,Theme)书籍信息目录
SQL>createtablels_bookmessage(
2BookNumchar(11)notnull,
3BookNamevarchar(20)notnull,
4Authorvarchar(10)notnull,
5Themevarchar(10)notnull,
6constraintFK_bookforeignkey(BookNum)
7referencesls_book(BookNum)
8);
表已创建。
3:
创建索引和视图:
为ls_book创建索引Book_CBorrow用来查找图书时以从高到低的顺序可以先显示未借出的书籍。
SQL>createindexBook_CBorrowonls_book(YONdesc);
索引已创建。
视图1:
查看借书的详细信息
SQL>createorreplaceviewshow_Borrowas
2select*fromls_bookmessagewhereBookNum=(
3selectBookNumfromls_jie);
视图已创建。
视图二:
查看未借出的书籍信息
SQL>createorreplaceviewshow_bookas
2select*fromls_bookmessagewhereBookNum=(
3selectBookNumfromls_bookwhereYON='N');
视图已创建。
视图三:
查询借被书的详细信息:
SQL>createorreplaceviewshow_personbookas
2selectls_jie.CardNum,ls_bookmessage.*fromls_jie,ls_bookmessagewhere
3ls_jie.BookNum=ls_bookmessage.BookNum;
视图已创建。
(四)PL/SQL编程
函数:
返回该用户已经借阅书的数量
SQL>createorreplacefunctionGet_BookNums(IDchar)
2returnnumberis
3numsnumber;
4begin
5selectcount(*)intonumsfromls_jiewhereCardNum=ID;
6returnnums;
7endGet_BookNums;
8/
函数已创建。
创建触发器:
当添加书籍信息成功后触发
SQL>createtriggerAddBook
2afterinsertonls_book
3foreachrow
4begin
5dbms_output.put_line('添加书籍成功');
6end;
7/
触发器已创建
登录存储过程
SQL>createorreplaceprocedurelogin(
2p_idinls_user.CardNum%TYPE,
3p_passwordinls_user.PassWord%TYPE)
4as
5v_passwordls_user.PassWord%TYPE;
6begin
7selectPassWordintov_passwordfromls_user
8whereCardNum=p_id;
9ifv_password=p_passwordthen
10dbms_output.put_line('登录成功');
11elsedbms_output.put_line('密码错误');
12endif;
13exception
14whenno_data_foundthen
15dbms_output.put_line('没有此用户');
16endlogin;
17/
过程已创建。
过程二:
借阅书籍
SQL>createorreplaceprocedurejieshu(
2idinls_jie.CardNum%TYPE,
3bookidinls_jie.BookName%TYPE,
4booknameinls_jie.BookName%TYPE)
5as
6Idenls_book.YON%TYPE;
7begin
8Iden:
='Y';
9insertintols_jievalues(id,bookid,bookname);
10updatels_booksetYON=IdenwhereBookNum=bookid;
11dbms_output.put_line('借书成功');
12endjieshu;
13/
过程已创建。
(五)Oracle备份与导出
1、设置归档模式
检查数据库是否处于归档模式
SQL>archiveloglist;
结果不是就要改为归档,关闭运行的数据库实例
SQL>shutdownimmediate;
启动数据库实例到mount状态,但不要打开
SQL>startupmount;
切换数据库日志模式
SQL>alterdatabasearchivelog;
查看是否归档
SQL>archiveloglist;
是的那就把数据库打开
SQL>alterdatabaseopen;
2、归档当前日志
显示归档日志信息
SQL>selectname,log_modefromv$database;
3数据库完全备份及实现
查询数据文件datafile的所在目录:
SELECTnameFROMv$datafile;
查询控制文件controlfile的所在目录:
SELECTnameFROMv$controlfile;
查询重做日志文件的所在目录:
SELECTmemberFROMv$logfile;
关闭数据库shutdownimmediate
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大型 数据库 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)