【数据库】基本概念

文章讲述了数据库的ANSI/SPARC三层模式,强调外模式设计成多个以确保数据安全性和用户接口的灵活性。逻辑数据独立性允许模式改变而不影响用户应用。SQL语言在数据库结构和元素定义(DDL)以及数据操作(DML)中的作用被阐述,并提到了DCL和DQL。此外,文章讨论了超码、候选码和主码的概念,以及视图在数据抽象和安全中的角色,同时指出并非所有视图都可更新。
摘要由CSDN通过智能技术生成

第一章

  1. 为什么在 ANSI/SPARC 体系结构中,外模式需要设计成多个?这么做有什么好处?
    • 外模式:单个用户所看的局部数据的逻辑结构和特征的描述,用户与数据库系统的数据接口。保证数据安全性,每个用户只能看到外模式中的数据,其余数据不可见。
    • 重点:简洁方便,安全性,灵活性。
  2. 什么是数据库的逻辑数据独立性?请举例说明。
    • 当概念模式发生改变时,只要修改外模式/ 模式映象,可保持外模式不变,从而保持用户应用程序不变,保证了数据与用户程序的逻辑独立性。
  3. 关系数据模型要求外码所引用的属性必须是候选码,我们能否放松要求让外码引用非码 属性?试给出你的分析。
    • 不能,候选码唯一,非码属性不唯一
  4. 现实世界中的数据约束是否都可以通过关系数据模型的三类完整性规则来表示?如果 是,请解释理由。如果不是,请给出一个反例。
    • 不可以,比如优秀率不超过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的组成

在这里插入图片描述

视图

视图的概念

  • 视图是从一个或几个基本表中导出的虚拟表,其数据没有实际存储,但可以和表一样操作
  • 视图具有和表一样的逻辑结构定义
  • 但视图没有相应的存储文件,而每个表都有相应的存储文件
举例

把每门课程的课程号和平均成绩定义为视图

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#

在查询中使用了函数时
若省略列名表,则必须为函数指定别名
若使用了列名表,则可以不指定函数的别名

视图的用途

  • 逻辑数据独立性:用户程序与数据库结构
  • 简化了用户眼中的数据,使用户可以集中于所关心的数据上
  • 同一数据库对不同用户提供不同的数据呈现方式
  • 安全保护

视图的更新

  • 不是所有视图都是可更新的
  • 基于连接查询的视图不可更新
  • 使用了函数、表达式、Distinct的视图不可更新
  • 使用了分组聚集操作的视图不可更新
  • 只有建立在单个表上,而且只是去掉了基本表的某些行和列,但保留了主键的视图才是可更新的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

之墨_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值