当前位置:文档之家› 大型数据库大实验

大型数据库大实验

(一)Oracle得安装与配置(1)Oracle 11g得安装1)将两个压缩包解压在一个文件夹之后,打开文件夹,找到setup、exe,双击即可进入安装界面。

2)配置安全更新,电子邮箱不用写,取消默认得“我希望通过MyOracle Support接收安全更新(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>createtablespace MYTBSlogging datafile ’D:\MYTBS1、DBF' size 300m;表空间已创建。

SQL> altertablespace MYTBS adddatafile ’E:\MYTBS2、DB F' size 200m;表空间已更改.(2)创建配置文件得创建SQL〉createprolimit2password_life_time 103failed_login_attempts34 password_lock_time1;配置文件已创建查瞧该配置文件中得资源配置结果,dba_profiles数据字典表(3)创建用户新建一个用户ls,设置默认表空间为MYTBS用户ls得配置文件为userprofile查瞧新建得用户默认表空间,dba_users数据字典表(4)分配权限为ls用户授权:赋予创建任何表、创建任何索引得权限,将DBA得角色给新建用户;查瞧对应得用户获得得权限与角色用数据字典表user_sys_privs,user_tab_priv s,user_role_等SQL>grantconnect,resourceto ls;授权成功.SQL〉grant create any table,createanyindex to ls;授权成功。

SQL> grant dba to ls;授权成功。

SQL> conn ls/1615925195;已连接。

SQL> select * from user_sys_privs;SQL>select *from user_tab_privs;SQL〉select*from user_role_privs;(5)用新建得帐号登录.并执行show user命令,显示当前登录用户(三)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〉create table ls_user(2 CardNumchar(11) notnull,3 PassWord varchar(11)not null,4Identity char(1)default’P',5 constraint f_Identity_ckcheck(Identityin(’U','P’)),6 constraint PK_user primarykey(CardNum)7 );表已创建。

ﻫ2:创建用户信息表ls_usermessage(CardNum,UserName,Sex,CBorrow,NBorrow)用户信息CardNum为外键,依赖ls_user表中得CardNum,性别默认为男,约束只能选男、女SQL>createtable ls_usermessage(2CardNumchar(11)notnull,3UserName varchar(8)notnull,4Sex char(4)default '男’,5 CBorrow number default 6,6 NBorrow number default0,7 constraint f_Sex check(Sex in('男','女’)),8constraint FK_userforeign key(CardNum)9references ls_user(CardNum)10);表已创建。

ls_book(BookNum,BookName,YON)书籍目录SQL>create table ls_book(2BookNum char(11) not null,3 BookName varchar(20)notnull,4YONchar(1) default'N',5constraint f_YONcheck(YON in('Y','N')),6constraintPK_Book primary key(BookNum)7);表已创建.ls_jie(CardNum,BookNum,BookName)已借书目录SQL>create table ls_jie(2 CardNumchar(11) notnull,3BookNumchar(11)not null,4 constraint Fk_CardNum foreignkey(CardNum)5 references ls_user(CardNum),6constraint FK_BookNum foreignkey(BookNum)7 references ls_book(BookNum)8 );表已创建.ls_bookmessage(BookNum, BookName,Author,Theme)书籍信息目录SQL〉create table ls_bookmessage(2 BookNum char(11)notnull,3 BookName varchar(20)notnull,4 Author varchar(10) not null,5Theme varchar(10) not null,6 constraint FK_book foreign key(BookNum)7referencesls_book(BookNum)8);表已创建.3:创建索引与视图:为ls_book创建索引Book_CBorrow用来查找图书时以从高到低得顺序可以先显示未借出得书籍。

SQL〉create index Book_CBorrowonls_book(YON desc);索引已创建。

视图1:查瞧借书得详细信息SQL> createorreplace viewshow_Borrowas2 select * from ls_bookmessage where BookNum=(3 selectBookNum from ls_jie);视图已创建。

视图二:查瞧未借出得书籍信息SQL>create orreplaceviewshow_bookas2 select *from ls_bookmessage whereBookNum=(3 select BookNum from ls_bookwhere YON=’N');视图已创建。

视图三:查询借被书得详细信息:SQL〉create or replace view show_personbook as2 select ls_jie、CardNum,ls_bookmessage、*from ls_jie,ls_bookmessage where3 ls_jie、BookNum= ls_bookmessage、BookNum;视图已创建。

(四)PL/SQL编程函数:返回该用户已经借阅书得数量SQL>create orreplace function Get_BookNums(ID char)2 return number is3nums number;4begin5 select count(*)into nums from ls_jiewhereCardNum=ID;6 return nums;7 end Get_BookNums;8/函数已创建。

创建触发器:当添加书籍信息成功后触发SQL> createtriggerAddBook2after insertonls_book3for each row4 begin5 dbms_output、put_line('添加书籍成功');6 end;7 /触发器已创建登录存储过程SQL〉create or replaceprocedure login(2 p_id in ls_user、CardNum%TYPE,3 p_password inls_user、PassWord%TYPE)4 as5v_passwordls_user、PassWord%TYPE;6begin7 selectPassWord into v_password from ls_user8 whereCardNum=p_id;9ifv_password=p_password then10 dbms_output、put_line(’登录成功’);11 else dbms_output、put_line(’密码错误');12 end if;13 exception14 whenno_data_foundthen15dbms_output、put_line('没有此用户');16end login;17/过程已创建。

相关主题