数据库系统的三级模式结构由外模式、模式和内模式组成。(参见书上图 1 . 29 ) 外模式,亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给 DBMs 管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
1. 候选码
候选码是能够唯一标识关系中某一个元组的一个属性或属性集,也叫候选键
如:
学生关系中,学号可以唯一标识学生,班级+姓名也可以唯一标识一个学生,学号和(班级,姓名)都是候选码
候选码需要满足:
唯一性:唯一标识一个元组(注意不是说候选码只有一个)
最小性:构成候选码的属性个数最少,比如前面的(班级,姓名),再添加一个学号或其他属性就多此一举了
2. 主码
主码是从候选键中选着一个作为查询、插入、删除元组操作的操作变量,也叫主键、主码、关系键、关键字
简单来说就是从候选码中选出的一个最具代表性的
主属性:包含在任何一个候选码的各个属性称为主属性(也就是说,之前的(班级,姓名)中,班级和姓名都是主属性)
非主属性:不包含在任何候选码中的属性
3. 外码
关系R1,R2,其中属性集X是R1的非主码属性,但X是R2的主码,则称X是R1的外码(也叫外键、外部关系键),R1为参照关系,R2为被参照关系
外码的取值是由被参照的关系的主码的域决定的,也就是外码的域来自“那个”主码的域(R1的外码和R2的主码必须在同一个域上)
答:基本表是本身独立存在的表,在 sQL 中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。
视图与基表的区别与联系
1、视图是从一个或者多个基本表中导出的表,给用户使用的‘专用表’,是已经编译好的sql语句,而表不是;
2、 视图没有实际的物理记录,不占用物理空间,而表相反。
3、视图是查看表内容的窗口,是查看数据表的一种方法,视图可以不给用户接触表,使得用户不知道表结构,具有更大的安全性;
4、视图只是逻辑概念的存在,只能由创建的语句来修改。而表可以随时对它进行修改。
5、视图的建立和删除只影响视图本身,不影响对应的基本表。
数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出( Garba : e In Garba : e out )所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。
这里感觉会出在简答题的部分
① 数据库的完整性是为了在数据的添加、删除、修改等操作中不出现数据的破坏或多个表数据不一致,是指存储在数据库中的数据正确无误并且相关数据具有一致性,数据在逻辑上的一致性、正确性、有效性和相容性。
② 数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏 。
③ 数据的完整性和安全性是两个不同概念,数据库的完整性是指数据的正确性和相容性。数据库的安全性是指保护数据库,以防止不合法的使用造成的数据泄密、更玫或破坏。其相同点是两者都是对数据库中的数据进行控制,各自所实现的功能目标不同。
(1)用户标识和鉴别:
该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才能提供系统的使用权
(2)存取控制
通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未授权的人员无法存取数据
(3)视图机制
为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
(4)审计
建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人,时间和内容等。
(5)数据加密
对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容
按照规范的设计方法,一个完整的数据库设计一般分为以下六个阶段:
⑴需求分析:分析用户的需求,包括数据、功能和性能需求;
⑵概念结构设计:主要采用E-R模型进行设计,包括画E-R图;
⑶逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;
⑷数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径;
⑸数据库的实施:包括编程、测试和试运行;
⑹数据库运行与维护:系统的运行与数据库的日常维护。
事务:
事务是指作为单个逻辑工作单元执行的一组相关操作。
这些操作要求全部完成或者全部不完成。
使用事务的原因:保证数据的安全有效。
事务的四个特点:(ACID)
1、原子性(Atomic):事务中所有数据的修改,要么全部执行,要么全部不执行
2、一致性(Consistence):事务完成时,要使所有所有的数据都保持一致的状态,换言之:通过事务进行的所有数据修改,必须在所有相关的表中得到反映。
3、隔离性(Isolation):事务应该在另一个事务对数据的修改前或者修改后进行访问。
4、持久性(Durability):保证事务对数据库的修改是持久有效的,即使发生系统故障,也不应该丢失。
事务组成:
一条或者多条DML,[一条DDL]和一条DCL。
事务的分类:
1、显式事务:
(1)要去显式的调用DCL。
(2)只有用到COMMIT以后才会真正写入数据库,也持久化了。
2、隐式事务:
(1)如果人工要使用隐式事务,SET AUTOCOMMIT ON (只针对一个连接)
(2)以下情况为自动提交:
1)正常执行完成的DDL语句:create、alter、drop
2)正常执行完场的DCL语句GRANT、REVOKE
3)正常退出的SQLPlus或者SQL Developer等客户端
回滚:
RollBack只能对未提交的数据撤销,已经Commit的数据是无法撤销的,因为commit之后已经持久化到数据库中。
1.一级封锁协议
一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事束才释放。事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。
一级封锁协议可以防止丢失修改,并保证事务T是可恢复的。使用一级封锁协议可以解决丢失修改问题。
在一级封锁协议中,如果仅仅是读数据不对其进行修改,是不需要加锁的,它不能保证可重复读和不读“脏”数据。
丢失修改:不加锁修改之后被其它事务修改了
写:加X锁->修改数据R->成功或失败->释放X锁
读:不加锁,导致读到别的事务未提交数据,且多次读结果不一致
2.二级封锁协议
二级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后方可释放S锁。
二级封锁协议除防止了丢失修改,还可以进一步防止读“脏”数据。但在二级封锁协议中,由于读完数据后即可释放S锁,所以它不能保证可重复读。
写:同一级封锁协议
读:加S锁->读数据R->读完释放S锁,不会读到别的事务未提交的数据,但多次读会结果还是会不一致
注:在数据R加了X锁之后,不能再加其它锁(其它事务的X锁和S锁);在数据R加了S锁之后,其它锁还能加S锁,但不能加X锁
3.三级封锁协议
三级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。
三级封锁协议除防止了丢失修改和不读“脏”数据外,还进一步防止了不可重复读。
写:同一级封锁协议
读:加S锁->读数据R->再读数据R->事务完成->释放S锁,多次读结果一致
规范化:范式(主属性,非主属性,1NF,2NF,3NF,BCNF:定义,例子等)_今天会营业的博客-CSDN博客_范式规范化主属性:在一个关系中,如果一个属性是构成某一个候选关键字的属性集中的一个属性,则称它为主属性。非主属性:不包含在任何一个候选码中的属性称为非主属性。 非主属性是相对与主属性来定义的,是指关系中不包含任何一个候选码中的属性。1NF(第一范式)关系数据库中的关系要满足一定要求的,满足不同程度要求为不同范式。满足最低要求的叫第一范式。在第一范式中满足进一步要求的为第二范式,其余以此类推。对于范式,主要是E.FCodd做的工作,...https://blog.csdn.net/m0_56501550/article/details/124675552?ops_request_misc=&request_id=&biz_id=102&utm_term=%E8%A7%84%E8%8C%83%E5%8C%96%E5%92%8C%E8%8C%83%E5%BC%8F%E5%BA%94%E7%94%A8&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~de
数据库设计3-E-R图转换关系模型_kupeThinkPoem的博客-CSDN博客_er图转换为关系模型目录一、概述二、ER图转换关系模型1、实体集向关系模式的转换2、两个实体型之间的联系集向关系模式的转换3、同一实体型之间的联系集向关系模式的转换4、多实体型之间的联系向关系模式的转换5、弱实体集向关系模式的转换6、应用实例一、概述 E-R图转换 E-R图是由实体、实体的属性和实体之间的联系三个要素组成的。将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式 。二、ER图转换关系模型1、实...https://blog.csdn.net/kupepoem/article/details/123799084?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1%E5%BA%94%E7%94%A8%EF%BC%8CER%E5%9B%BE%E7%BB%98%E5%88%B6%EF%BC%8C%E5%85%B3%E7%B3%BB%E6%A8%A1%E5%BC%8F%E8
数据库:ER图↔关系模式_hhhhxxn的博客-CSDN博客_er图关系模式怎么写常考题目:①如何画ER图②如何将ER图转化为关系模式1,ER图 概念:实体关系图 (Entity-Relationship,E-R),有三个组成部分:实体、属性、联系。用来进行关系型数据库系统的概念设计。实体:用矩形表示,矩形框内写上实体名.属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。联系:用菱形表示,菱形框内写上联系名,并用无向边分别与有关实体连接起来,同时在无向边旁...https://blog.csdn.net/hhhhxxn/article/details/105888468?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1%E5%BA%94%E7%94%A8%EF%BC%8CER%E5%9B%BE%E7%BB%98%E5%88%B6%EF%BC%8C%E5%85%B3%E7%B3%BB%E6%A8%A1%E5%BC%8F%E8%25
数据库关系代数详解_Charon_cc的博客-CSDN博客_关系代数数据库关系代数1. 关系代数的运算1.1 传统的关系运算传统的关系运算起源于数学的集合论,有下面几种:笛卡尔积运算差运算交运算并运算1.2 专门的关系运算选择投影连接除运算1.2.1 关系运算中的基础概念在学习关系代数的时候,我们脑海中要时刻拥有一张表格,还有一些表格的参数,这张表格如下:比如说我们每个人都见过成绩单,牢记以下的比喻R就为整张成绩单R[A1, A2, A3,…Ai] = R[语文,英语,数学……学科]t为某个同学t [Ai] 就https://blog.csdn.net/qq_45978890/article/details/114139520?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166945210716800186567666%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166945210716800186567666&biz_id=0&utm_med
SQL语句的基本应用整理_igcllq的博客-CSDN博客_sql的应用SQL语句一些重要的命令(sql对大小写不敏感:select与SELECT是相同的)select 从数据库中提取数据update 更新数据库中的数据delete 从数据库中删除数据insert init 向数据库插入数据create database 创建数据库alter database 修改数据库create table 创建数据表alter table 变更(修改)数据表drop table 删除表create index 创建索引(搜索键)drop index 删除索引Shttps://blog.csdn.net/qq_45637155/article/details/119325548?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166945215116800192217312%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166945215116800192217312&biz_id=0&utm_med