数据库系统概念第一章by SixInNight

引言



文件处理系统

文件处理系统file-processing system):
是传统的操作系统所支持的。在数据库管理系统DBMS)出现以前,各个组织通常都采用这样的系统来存储信息 (永久记录被存储在多个不同的文件中,人们编写不同的应用程序来记录从有关文件中取出或加入到适当的文件中)

(存储组织信息的)主要弊端

  • 数据的冗余和不一致 data redundancy and inconsistency
    冗余除了导致存储和访问开销增大以外,还可能导致数据不一致性,即同一数据的不同副本不一致
  • 数据访问困难 difficulty in accesssing data
    传统的文件处理系统不支持以一种方便而高效的方式去获取所需数据。我们需要开发通用的、能对变化的需求做出更快反应的数据检索系统
  • 数据孤立 data isolation
  • 完整性问题 integrity problem
    数据库中所存储的数据的值必须满足某些特定的一致性约束consistency constraint
  • 原子性问题 atomicity problem
    保持原子性,要么全部发生要么根本不发生,而在传统的文件处理系统中很难做到
  • 并发访问异常 concurrent-access anomaly
  • 安全性问题 security problem
    由于应用程序总是即席的加入到文件处理系统来,一些安全性约束难以实现

数据抽象

开发人员通过如下几个层次的上的抽象来对用户屏蔽复杂性

  • 物理层physical level):
    最低层次的抽象,描述数据实际上是怎样存储的。它详细描述复杂的底层数据结构
  • 逻辑层logical level):
    层次稍高,描述数据库中存储什么数据及这些数据间存在什么关系。这样它就通过少量相对简单的结构描述了整个数据库。物理数据独立性physical data independence:逻辑层的用户不必知道涉及物理层结构的复杂性
  • 视图层view level):
    最高层次的抽象,只描述数据库的某个部分。系统可以为同一数据库提供多个视图

实例、模式、数据模型

特定时刻存储在数据库中的信息的集合称作数据库的一个实例instance

而数据库的总体设计称作数据库模式schema)(数据库模式即使发生变化,也不频繁)

  • 物理模式 physical schema ——物理层
  • 逻辑模式 logical schema ——逻辑层
  • 子模式 subschema ——视图层

数据库结构的基础是数据模型data model),数据模型 是一个 描述 数据、数据联系、数据语义以及一致性约束 的概念工具 的集合,提供了一种描述 物理层、逻辑层以及视图层数据库设计 的方式

  • 关系模型 relation model
  • 实体-联系模型 entity-relationship model
  • 基于对象的数据模型 object-based data model
  • 半结构化数据模型 semistructured data model
    还有很少被使用的 网状数据模型 network data model层次数据模型 hierarchical data model

数据库语言

数据定义语言data-definition language,DDL)定义 数据库模式
数据操纵语言data-manipulation language,DML)表达 数据库的查询和更新
它们并不是两种分离的语言,而是简单的构成了单一的数据库语言(如SQL语言)的不同部分

DDL

  • 域约束domain constraint):是 完整性约束 的最基本形式
  • 参照完整性referential integrity
  • 断言assertion):一个断言 就是数据库需要时刻满足的某一条件。域约 束和参照完整性约束断言 的特殊形式
  • 授权authorization):
    • 读权限 read authorization
    • 插入权限 insert authorization
    • 更新权限 update authorization:允许修改,但不能删除数据
    • 删除权限 delete authorization
  • 数据字典 data dictionary:可以把它看作一种特殊的 ,这种表只能由数据库系统本身(不是常规的用户) 来访问和修改。在读取和修改实际的数据前,数据库系统先要参考数据字典
    元数据 metadata:是关于数据的数据。数据字典 包含了元数据
    DDL以一些指令(语句)作为输入 ,生成一些输出DDL的输出放在数据字典

DML

  • 访问类型检索插入删除修改 (DML中涉及信息 检索 的部分称作查询语言 query language
  • 类别过程化DML procedural DML声明式DML declarative DML(也称为 非过程化DML

关系数据库

每个有多个 ,每个 有唯一的名字。每个包含一种特定类型的记录每种记录类型定义固定数目的字段属性,表的对应记录类型的属性

关系数据库基于关系模型关系模型基于记录的模型的一个实例,之所以叫基于记录的模型是因为数据库的结构是几种固定格式的记录

这里的应用程序是指,以这种方式与数据库进行交互的程序

为了访问数据库DML语句需由宿主语言来执行,有两种途径

  • 通过提供应用程序接口(过程集),它可以用来将DML和DDL的语句发送给数据库,再取回结果
    开放数据库连接(ODBC)标准(与C语言一起使用的),是一种常用的应用程序接口标准,JAVA数据库连接(JDBC)标准为JAVA语言提供了相应的特性
  • 通过扩展宿主语言的语法,在宿主语言的程序中嵌入DML调用
    通常用一个特殊字符作为DML调用的开始,并且通过DML预编译器DML precompiler),来将DML语句转变为宿主语言中的过程调用

实体-联系模型、规范化、存储管理器

实体-联系(E-R)数据模型使用一组称作实体的基本对象,以及这些对象间的联系

数据库的实体通过属性attribute)集合来描述,联系relationship)几个实体之间的关联
同一类型所有实体的集合称作实体集entity set),同一类型所有联系的集合称作联系集合relationship set

数据库的总体逻辑结构(模式)可以用实体-联系图entity-relationship diagram,E-R 图)进行图形化表示。画图采用的方法包括统一建模语言Unified Modeling Language,UML),基于UML的符号中,E-R图如下表示:

  • 实体集用矩形框表示,实体名在头部,属性名列在下面
  • 联系集用连接一对相关的实体集的菱形表示,联系名放在菱形内部

E-R模型描绘的数据库必须遵守的一个重要约束映射基数mapping cardinality),它表示通过某个联系集能与一实体进行关联的实体数目

规范化

  • 最常用的方法是使用函数依赖functional dependency
  • 目标是生成一个关系模式集合,使存储信息时没有不必要的冗余 &同时能轻易检索数据

存储管理器负责数据库中数据的存储、检索和更新,存储管理部件包括:


数据库体系结构

系统体系结构

两层体系结构two-tier architecture)和三层体系结构three-tier architecture):

  • 17
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、实验目的 使学生加深对数据库安全性和完整性的理解。并掌握SQL Server中有关用户、角色及操作权限的管理方法。熟悉通过SQL语句对数据进行完整性控制。 二、实验内容和要求   数据库的安全性实验,在SQL Server企业管理器中,设置SQL Server的安全认证模式,实现对SQL Server的用户和角色管理,设置和管理数据操作权限。   具体内容如下:   设置SQL Server的安全认证模式(Windows或SQL Server和Windows(S)认证模式)。   登录的管理 创建一个登录用户   数据库用户的管理 登陆用户只有成为数据库用户(Database User)后才能访问数据库。每个数据库的用户信息都存放在系统表Sysusers中,通过查看Sysusers表可以看到该数据库所有用户的情况。SQL Server的数据库中都有两个默认用户:dbo(数据库拥有者用户)和(dba)。通过系统存储过程或企业管理器可以创建新的数据库用户。   角色的管理 创建一个角色,使创建的用户成为该角色的成员,并授予一定的操作权限。   在学生表中定义主键、外键约束。   在课程表的“课程名”字段上定义唯一约束。   在选课表的“成绩”字段上定义check约束,使之必须大于等于0且小于等于100.“课程号”字段只能输入数字字符。   定义规则,并绑定到读者表的“性别”字段,使之只能取“男、女”值。   在学生表中增加出生日期字段。定义缺省,并绑定到借阅表的“借阅日期”上,使之只能取当前日期。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值