第一章
-
为什么在 ANSI/SPARC 体系结构中,外模式需要设计成多个?这么做有什么好处?
- 外模式:单个用户所看的局部数据的逻辑结构和特征的描述,用户与数据库系统的数据接口。保证数据安全性,每个用户只能看到外模式中的数据,其余数据不可见。
- 重点:简洁方便,安全性,灵活性。
-
什么是数据库的逻辑数据独立性?请举例说明。
- 当概念模式发生改变时,只要修改外模式/ 模式映象,可保持外模式不变,从而保持用户应用程序不变,保证了数据与用户程序的逻辑独立性。
-
关系数据模型要求外码所引用的属性必须是候选码,我们能否放松要求让外码引用非码 属性?试给出你的分析。
- 不能,候选码唯一,非码属性不唯一
-
现实世界中的数据约束是否都可以通过关系数据模型的三类完整性规则来表示?如果 是,请解释理由。如果不是,请给出一个反例。
- 不可以,比如优秀率不超过40%,不及格率不超过30%。
- 注:用户定义的完整性只能对某一属性设置具体的约束,不能对表
的统计量进行约束。涉及多个元组的约束或单个元组多属性的约束
据无法通过完整性规则来表示
第二章
三级模式
SQL语言支持数据库三级模式结构,在SQL中,模式对应于基本表,内模式对应于存储文件,外模式对应于视图和部分基本表,元组对应于表中的行,属性对应于表中的列。
概念模式是所有用户的公共数据视图:
◼ 不涉及数据物理存储的细节和硬件环境
◼一个数据库只有一个概念模式
外模式是单个用户的视图:
◼ 用户与数据库系统的数据接口,对于用户而言,外模式就是数据库
◼ 建立在概念模式之上,同一模式上可有多个不同的外模式
内模式是数据库内部的存储视图:
◼ 数据物理结构和存储方式的描述:
记录的存储方式:顺序存储、按B树组织还是散列存储?
索引按什么方式组织:排序、散列?
数据是否加密?是否压缩存储?
◼不涉及物理块(或页)的大小,也不考虑具体设备的柱面或磁道大小
◼一个数据库只有一个内模式
在数据库中,DDL(Data Definition Language)和DML(Data Manipulation Language)是两个重要的概念。
DDL主要用于定义数据库的结构和元素,例如创建、删除、修改表格,定义列、限制和索引等。DDL的操作一般不会影响数据库中的数据,而是用于创建、修改和删除数据库对象的定义。
DML主要用于操作数据库中的数据,例如插入、删除、更新和查询数据等。DML的操作会影响数据库中的数据。
简单来说,DDL用于定义数据库中的结构和元素,DML用于对数据库中的数据进行操作。
除了DDL和DML之外,还有DCL和DQL。
DCL是指数据控制语言(Data Control Language),用于控制数据库用户的访问权限,包括授权和撤销权限等操作,例如GRANT和REVOKE语句。
DQL是指数据查询语言(Data Query Language),用于从数据库中查询数据,例如SELECT语句。
第三章
- ◼ 超码(Super Key)
- 在关系模式中能唯一标识一个元组的属性集称为关系模式
的超码
- 在关系模式中能唯一标识一个元组的属性集称为关系模式
- ◼ 候选码(Candidate Key)
- 不含多余属性的超码
- 包含在任何一个候选码中的属性称为主属性(Primary Attribute)
- 不包含在任何一个候选码中的属性称为非主属性(Non-prime Attribute)
- ◼ 主码(Primary Key)
- 用户选作元组标识的一个候选码称为主码,其余的候选码称为替换码(Alternate Key)
-
一个关系是一个规范化的二维表格
-
属性值不可分解
- 不允许表中有表
-
元组不可重复
- 因此一个关系模式至少存在一个候选码
-
没有行序,即元组之间无序
- 关系是元组的集合
-
没有列序,即属性之间无序
- 关系模式是属性的集合
-
属性值不可分解
-
关系数据库的数据和操作必须遵循的规则
- 实体完整性(Entity Integrity)
- 参照完整性(Referential Integrity)
- 用户自定义完整性(User-Defined Integrity)
第四章
SQL数据库的三级体系结构
SQL的组成
视图
视图的概念
- 视图是从一个或几个基本表中导出的虚拟表,其数据没有实际存储,但可以和表一样操作
- 视图具有和表一样的逻辑结构定义
- 但视图没有相应的存储文件,而每个表都有相应的存储文件
举例
把每门课程的课程号和平均成绩定义为视图文章来源:https://www.toymoban.com/news/detail-409496.html
cs_view(sno,name,age):
Create View c_view
As Select c#, AVG(score) as avg_score
From sc
Group By c#
cs_view(s#,sname,age):
Create View c_view (cno, avg_score)
As Select c#, AVG(score)
From sc
Group By c#
在查询中使用了函数时
若省略列名表,则必须为函数指定别名
若使用了列名表,则可以不指定函数的别名文章来源地址https://www.toymoban.com/news/detail-409496.html
视图的用途
- 逻辑数据独立性:用户程序与数据库结构
- 简化了用户眼中的数据,使用户可以集中于所关心的数据上
- 同一数据库对不同用户提供不同的数据呈现方式
- 安全保护
视图的更新
- 不是所有视图都是可更新的
- 基于连接查询的视图不可更新
- 使用了函数、表达式、Distinct的视图不可更新
- 使用了分组聚集操作的视图不可更新
- 只有建立在单个表上,而且只是去掉了基本表的某些行和列,但保留了主键的视图才是可更新的
到了这里,关于【数据库】基本概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!