大型数据库大实验.docx

上传人:b****9 文档编号:25781319 上传时间:2023-06-14 格式:DOCX 页数:28 大小:1.36MB
下载 相关 举报
大型数据库大实验.docx_第1页
第1页 / 共28页
大型数据库大实验.docx_第2页
第2页 / 共28页
大型数据库大实验.docx_第3页
第3页 / 共28页
大型数据库大实验.docx_第4页
第4页 / 共28页
大型数据库大实验.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

大型数据库大实验.docx

《大型数据库大实验.docx》由会员分享,可在线阅读,更多相关《大型数据库大实验.docx(28页珍藏版)》请在冰豆网上搜索。

大型数据库大实验.docx

大型数据库大实验

(一)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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1