赞
踩
数据库(DB)是存放数据的仓库,而且这些数据存在一定的关联,并按一定的格式存放在计算机内、可共享。
数据库管理系统(DBMS)按一定的数据模型组织数据形成数据库,并对数据库进行管理。
即,DBMS就是管理数据库的系统(软件)。数据库系统管理员(DataBase Administrator,DBA)通过DBMS对数据库进行管理。目前,比较流行的DBMS有:Oracle、SQL Server、MySQL等。
数据、数据库、数据库管理系统与操作数据库的应用程序,加上支撑它们的硬件平台、软件平台和与数据库有关的人员一起构成了一个完整的数据库系统。如图1.1所示描述了数据库系统的构成
层次模型将数据组织成一对多关系的结构,采用关键字来访问其中每一层次的每一部分。它存取方便且速度快;结构清晰,容易理解;数据修改和数据库扩展容易实现;检索关键属性十分方便。但结构不够灵活;同一属性数据要存储多次,数据冗余大;不适合于拓扑空间数据的组织。
网状模型具有多对多类型的数据组织方式。它能明确而方便地表示数据间的复杂关系;数据冗余小。但网状结构的复杂增加了用户查询和定位的困难;需要存储数据间联系的指针,使得数据量增大;数据的修改不方便。
关系模型以记录组或二维数据表的形式组织数据,以便于利用各种实体与属性之间的关系进行存储和变换,不分层也无指针,是建立空间数据和属性数据之间关系的一种非常有效的数据组织方法。它的结构特别灵活,概念单一,满足所有布尔逻辑运算和数学运算规则形成的查询要求;能搜索、组合和比较不同类型的数据;增加和删除数据非常方便;具有更高的数据独立性、更好的安全保密性。但数据库大时,查找满足特定关系的数据费时;而且无法表达空间关系。
主要通过SELECT语言实现各种查询功能。
概念数据模型用于信息世界的建模:一方面,应该具有较强的语义表达能力,能够方便直接表达应用中的各种语义知识;另一方面,它还应该简单、清晰、易于用户理解。
在概念数据模型中最常用的是E-R模型、通常E-R模型把每一类数据对象的个体称为“实体”,
而每一类对象个体的集合称为“实体集”,
把每个实体集涉及的信息项称为属性。
实体集中的实体彼此是可区别的。如果实体集中的属性或最小属性组合的值能唯一标识其对应实体,则将该属性或属性组合称为码。码可能有多个,对于每一个实体集,可指定一个码为主码。
个实体集A和B之间的联系可能是以下三种情况之一。
1.一对一的联系(1∶1)
2.一对多的联系(1∶n)
3.多对多的联系(m∶n)
对于(1∶1)的联系,既可单独对应一个关系模式,也可以不单独对应一个关系模式。
(1)联系单独对应一个关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。
对于(1∶n)的联系,既可单独对应一个关系模式,也可以不单独对应一个关系模式。
(1)联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。
对于(m∶n)的联系,单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。
物理数据模型(Physical Data Model)是面向计算机物理表示的模型,描述了数据在储存介质上的组织结构,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有其对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作由系统自动完成,而设计者只设计索引、聚集等特殊结构。
表是数据库中存放用户数据的对象。它包含一组固定的列。表中的列描述该表所跟踪的实体的属性,每个列都有一个名字和若干个属性。表结构的一个样例如图所示。
可以为一个表列创建约束条件。此时,表中的每一行都必须满足约束条件定义所规定的条件。约束条件有以下5种。
在非常大的数据库中,可以通过把一个大表的数据分成多个小表来简化数据库的管理,这些小表称为分区。除了对表分区外,还可以对索引进行分区。分区不仅简化了数据库的管理还改善了其应用性能。在Oracle中,能够细分分区,创建子分区。例如,可以根据一组值分割一个表,然后再根据另一种分割方法分割分区。
在关系数据库表中,一个行数据的物理位置无关紧要。为了能够找到数据,表中的每一行都用一个RowID来标识。RowID告诉数据库这一行的准确位置,包括所在的文件、该文件中的块和该块中行地址。
索引是帮助用户在表中快速地找到记录的数据库结构。它既可以提高数据库性能,又能够保证列值的唯一性。当CREATE TABLE命令中规定有UNIQUE或PRIMARY KEY约束条件子句时,Oracle就会自动创建一个索引。也可以通过CREATE INDEX命令来手工创建自己的索引。
用户账号虽然不是数据库中的一个物理结构,但它与数据库中的对象有着重要的关系,这是因为用户拥有数据库的对象。例如,用户SYS拥有数据字典表,这些表中存储了数据库中其他对象的所有信息;用户SYSTEM拥有访问数据字典表的视图,这些视图供数据库其他用户使用。
为数据库创建对象(例如表)必须在用户账户下进行。可以对每一个用户账户进行自定义,以便将一个特定的表空间作为它的默认表空间。
用户账户拥有的对象集称为用户的方案(SCHEMA)。可以创建不能注册到数据库的用户账户。这样的用户账户提供一种方案,这种方案可以用来保存一组其他用户方案分开的数据库对象。
为了给不同的用户使用数据库对象时提供一个简单的、唯一标识数据库对象的名称,可以为数据库对象创建同义词。同义词有公用同义词和私有同义词两种。
为了访问其他账户所有的对象,必须首先被授予访问这个对象的权限。权限可以授予给某个用户或PUBLIC,PUBLIC把权限授予数据库中的全体用户。
可以创建角色即权限组来简化权限的管理。可以把一些权限授予一个角色,而这个角色又可以被授予多个用户。在应用程序中,角色可以被动态地启用或禁用。
依照不同的数据处理性质,可能需要在数据表空间内划分出不同区域,以存放不同数据,将这些区域称为“段”(SEGMENT)。例如,存放数据的区域称为“数据区段”、存放索引的区域称为“索引区段”。
由于段是一个物理实体,所以必须把它分配到数据库中的一个表空间中(放在表空间的一个数据文件中)。而段其实就是由许多盘区组合而成的。当段中的空间用完时,该段就获取另外的盘区。
数据块是最小的储存单元,
每一个Oracle数据库都有一个或多个数据文件,而一个数据文件只能属于一个表空间。
数据文件创建后可改变大小,
创建新的表空间需要创建新的数据文件。
数据文件一旦加入到表空间,就不能从这个表空间中移走,也不能和其他表空间发生联系。
如果数据库对象存储在多个表空间中,可以通过把它们各自的数据文件存放在不同的磁盘上来对其进行物理分割。数据库、表空间和数据文件之间的关系如图所示。
除了数据文件外,最重要的Oracle数据库实体档案就是重做日志文件(Redo Log Files)。Oracle保存所有数据库事务的日志。这些事务被记录在联机重做日志文件(Online Redo Log File)中。当数据库中的数据遭到破坏时,可以用这些日志来恢复数据库。
一个数据库至少需要两个重做日志文件。Oracle以循环方式向重做日志文件写入。第一个日志被填满后,就向第二个日志文件写入,然后依此类推。当所有日志文件都被写满时,就又回到第一个日志文件,用新事务的数据对其进行重写。
当激活Oracle数据库时,系统会先在内存内规划一个固定区域,用来存储每位使用者所需存取的数据以及Oracle运作时必备的系统信息。这个区域就称为系统全局区(SGA)。
SGA又包含数个重要区域,分别是数据块缓存区(Data Block Buffer Cache)、字典缓存区(Dictionary Cache)、重做日志缓冲区(Redo Log Buffer)和SQL共享池(Shared SQL Pool)。图给出了SGA各重要区域之间的关系。
(1)数据块缓存区。数据块缓存区为SGA的主要成员,用来存放读取数据文件的数据块副本,或是使用者曾经处理过的数据。其用途在于有效减少存取数据时造成的磁盘读/写动作,进而提升数据存取的效率。数据块缓存区的大小由初始化参数DB_BLOCK_BUFFERS决定。数据块缓存区的大小是固定的,它不可能一次装载所有的数据库的内容。通常,数据块缓存区大小只有数据库大小的1%~2%,Oracle使用最近最少使用算法(LRU)来管理可用空间。当存储区需要自由空间时,最近最少使用的块将被移出,释放的存储区空间被新调入的数据块占用。这种算法能够让最频繁使用的数据保留在存储区中。
(2)字典缓存区。数据库对象的信息存储在数据字典中,这些信息包括用户账户、数据文件名、盘区位置、表说明和权限等。当数据库需要这些信息(如要验证用户账户)时,就要读取数据字典,从中获得需要的信息数据,并且将这些数据存储在SGA的字典缓存区中。
字典缓存区也是通过LRU算法来管理的。字典缓存区的大小由数据库内部管理。字典缓存区是SQL共享池的一部分,SQL共享池的大小由SHARED_POOL_SIZE参数设置。
(3)重做日志缓冲区。前面已介绍过,联机重做日志文件用于记录数据库的更改,以便在数据库恢复过程中用于向前滚动。但这些修改并不是马上写入日志文件中的,在被写入联机重做日志文件之前,事务首先被记录在称为重做日志缓冲区的SGA中。数据库可以周期性地分批向联机重做日志文件中写入修改的内容,从而优化这个操作。
(4)SQL共享池。SQL共享池存储数据字典缓存区及库缓存区(Library Cache),即对数据库进行操作的语句信息。当使用者将SQL指令送至Oracle数据库后,系统将会先解析语法是否正确。解析时所需要的系统信息,以及解析后的结果将放置在共享区内。如果不同的使用者执行了相同的SQL指令,就可以共享已解析的结果,加速SQL指令的执行速度。SQL共享池的大小由参数SHARED_POOL_SIZE决定。
数据库的物理结构和存储结构之间的关系是由后台进程来维持的。数据库拥有多个后台进程,其数量取决于数据库的配置。这些进程由数据库管理,它们只需要进行很少的管理。每个进程在数据库中执行不同的任务。图显示了后台进程在数据库外部结构、SGA中的作用和地位。下面介绍几个常用的后台进程。
(1)DBWR(数据库写入进程)。负责将数据块缓存区内变动过的数据块回写至硬盘内的数据文件。Oracle系统预设激活一个DBWR处理程序,但在大型数据库系统下,数据库变动情况可能十分频繁,可依实际需求额外配置其他的DBWR。
(2)LGWR(日志写入进程)。负责将重做日志缓冲区内的数据变动记录循序写入重做日志文件。重做日志缓冲区条目总是包含着数据库的最新状态,因为DBWR进程可以一直等待到数据块缓冲区中的修改数据块写入到数据文件中。
(3)SMON(系统监控进程)。如果因为停电或其他因素导致Oracle数据库不正常关闭,下一次激活数据库时将由SMON进行必要的数据库修复动作。
(4)PMON(进程监控进程)。当某个处理程序异常终止时,PMON清除数据块缓存区内不再使用的空间,并释放该程序之前使用的系统资源。PMON也会定期检查各服务器处理程序以及分配器的状态,如果某个处理程序因故停摆,也是由PMON负责将它重新激活。
(5)CKPT(检查点进程)。检查点是指一个事件或指定的时间。在适当时候产生一个检查点时,CKPT确保缓冲区内经常变动的数据定期被写入数据文件。在检查点之后,因为所有更新过的数据已经回写至磁盘数据文件,万一需要进行实例恢复时,就不再需要检查点之前的重置记录,这样,可缩短数据库重新激活的时间。检查点发生后,CKPT会先通知DBWR将数据块缓存区的改动数据回写到数据文件,然后更新数据文件与控制文件的检查点信息。
(6)RECO(恢复进程)。该进程是在具有分布式选项时所使用的一个进程,用于自动解决在分布式事务中的故障。在Oracle 11g分布式数据库环境中,RECO进程会自动处理分布式操作失败时产生的问题。所谓分布式操作,简单地说,就是针对多个数据库同时进行数据处理动作。
(7)ARCH(归档进程)。LGWR后台进程以循环方式向重做日志文件写入。当Oracle以ARCHIVELOG模式运行时,数据库在开始重写重做日志文件之前先对其进行备份。可以将这些归档文件写入磁盘设备。这些归档功能由ARCH后台完成。
(8)LCKn(锁进程)。在Oracle并行服务器环境中,为了避免进程间在数据存取时发生冲突,在一个数据库实例访问一个数据库对象时,LCKn进程自动封锁它所访问的数据库对象,访问结束之后再解锁。
(9)Dnnn(调度进程)。调度进程允许用户共享有限的服务器进程,该进程接收用户进程的要求,并将它们放入请求队列中,然后为请求队列中的用户进程分配一个共享的服务器进程。一个数据库实例可以建立多个调度进程。
表是Oracle系统中最主要的数据库对象,用来存储数据的一种逻辑结构, 由行和列组成,也称为二维表,每个数据库都包含若干个表。 关系数据库用表(关系)来表示实体及联系。
1.查询xsb表中所有学生的学号、姓名两列。并用别名”studentid”和“sname”显示列名。
select 学号 as studentid , 姓名 as sname from XSB;
2.查询xsb表中总学分低于50分的所有记录。
select * from XSB where 总学分 < 50;
3.查询cjb表中选修了课程号为101或206的相关信息。(分别用IN关键字和逻辑运算符OR完成)
select * from CJB where 课程号 in (101,206);
select * from CJB where 课程号=101 or 课程号=206;
4.查询xsb表中所有姓”王”的学生信息。
select * from XSB where 姓名 like’王%';
5.查询kcb表中开课学期是5且学分为4的所有课程信息.
select * from KCB where 开课学期=5 and 学分=4;
6.查询cjb中课程号为101的这门课的最高分、最低分、平均分,并以相应的中文别名显示。
select max(成绩) as 最高分, min(成绩) as 最低分, avg(成绩) as 平均分 from CJB where 课程号=101
7.按性别统计xsb表中男女生人数。(用group by分组子句)
select 性别,count(姓名) from XSB group by 性别;
8统计cjb表中每门课的平均分。(用group by分组子句)
select 课程号,avg(成绩) from CJB group by 课程号;
9.统计cjb表中每个学生选修的所有课程的平均分。(用group by分组子句)
select 学号,avg(成绩) from CJB group by 学号;
10.查询选修课程超过两门且成绩都在80分以上的学生学号。(用group by分组子句)
select 学号 from CJB where 成绩>80 group by 学号 having COUNT(课程号)>2;
11.查询xsb表中的所有信息,并按“出生时间”列的降序排列
select * from XSB order by 出生时间 desc;
12.查询cjb表中的所有信息,并排序 ,先按“学号”列的升序排列,再按“成绩”列的降序排列。
select * from CJB order by 学号 asc;
select * from CJB order by 成绩 desc;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SCPUseSK-1684845299772)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221118111043209.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pvc5lw1X-1684845299773)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221118111133877.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qfTkhPfw-1684845299775)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221118111356226.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ORmoOEWw-1684845299776)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221118111420185.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dtJnJqqq-1684845299776)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221118111428973.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ocOlXsXt-1684845299777)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221118111528750.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jbcQ09h2-1684845299778)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221118111540359.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y80omCE0-1684845299802)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129190330727.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e4b8MFCw-1684845299804)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129190426986.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nGLicAKV-1684845299805)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129190645751.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rhQxuTHN-1684845299806)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129190802375.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uG2bw9FU-1684845299806)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129190813735.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CIq7fYjO-1684845299806)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129194049191.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cKXXlqhp-1684845299807)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129194154127.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NGIAK6Nm-1684845299808)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129194228430.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k0i17woW-1684845299809)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129195628241.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GJF2zqu6-1684845299809)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129195707090.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G0cjBSpr-1684845299810)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129200016132.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EYyooyWv-1684845299810)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129200046868.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sDrRm08w-1684845299811)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194932826.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8u94TQcX-1684845299812)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194945406.png)]
导出表:
输入Cmd,打开命令窗口,在提示符下输入exp命 令,按提示交互完成导出数据操作。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-csQHFJ8q-1684845299813)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194620134.png)]
导入表:
输入Cmd,打开命令窗口,在提示符下输入imp命 令,按提示交互完成导入数据操作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-06cFkfC3-1684845299813)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194632901.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pz8yvD3O-1684845299813)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194642937.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gjVWHH50-1684845299814)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194656287.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GZbOOAl8-1684845299814)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194723031.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gRpwX6Mj-1684845299815)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194734128.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KkYlXzI1-1684845299815)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194850126.png)]
-1684845299809)]
[外链图片转存中…(img-GJF2zqu6-1684845299809)]
[外链图片转存中…(img-taDl2T32-1684845299809)]
[外链图片转存中…(img-G0cjBSpr-1684845299810)]
[外链图片转存中…(img-EYyooyWv-1684845299810)]
[外链图片转存中…(img-7nOFUtxG-1684845299811)]
[外链图片转存中…(img-sDrRm08w-1684845299811)]
[外链图片转存中…(img-8u94TQcX-1684845299812)]
导出表:
输入Cmd,打开命令窗口,在提示符下输入exp命 令,按提示交互完成导出数据操作。
[外链图片转存中…(img-NxcSRPih-1684845299812)]
[外链图片转存中…(img-csQHFJ8q-1684845299813)]
导入表:
输入Cmd,打开命令窗口,在提示符下输入imp命 令,按提示交互完成导入数据操作
[外链图片转存中…(img-06cFkfC3-1684845299813)]
[外链图片转存中…(img-Pz8yvD3O-1684845299813)]
[外链图片转存中…(img-gjVWHH50-1684845299814)]
[外链图片转存中…(img-GZbOOAl8-1684845299814)]
[外链图片转存中…(img-gRpwX6Mj-1684845299815)]
[外链图片转存中…(img-KkYlXzI1-1684845299815)]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。