数据库复习
绪论
1.1 GO
数据:描述事物的符号记录。
数据库:数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。
数据库管理系统:数据库管理系统是位于用户与操作系统之间的一层数据管理软件,它是一个大型复杂的软件系统,它主要用于科学地组织和存储数据、高效地获取和维护数据。
- 数据库管理系统的功能:
- 数据定义功能
- 数据组织,存储和管理
- 数据操纵功能
- 数据库的事务管理和运行管理
- 数据库的建立和维护功能
数据库系统=数据库+数据库管理系统+应用程序+数据库管理员(DBA)
数据库系统的特点:
数据结构化
数据的整体结构化是数据库的主要特征之一,它不再仅仅针对某一个应用,而是面向全组织,不仅数据内部结构化,整体也是结构化的,数据之间具有联系,数据记录可以变长,数据的最小存取单位是数据项。
数据的共享性高,冗余度低且易扩充
- 数据共享好处
- 减少数据冗余,节约存储空间。
- 避免数据之间的不相容性与不一致性。
- 使系统易于扩充。
- 数据共享好处
数据独立性高
数据独立性由数据库管理系统的二级映像功能来保证,它主要分为:物理独立性和逻辑独立性。
物理独立性:指用户的应用程序与数据库中数据的物理存储是相互独立的,当数据的物理存储改变了,应用程序不用改变。
逻辑独立性:指用户的应用程序与数据库中数据的逻辑结构是相互独立的,当数据的逻辑结构改变了,应用程序不用改变。数据由数据库管理系统统一管理和控制
数据库管理系统提供的数据控制功能。
(1)、数据的安全性(Security)保护:保护数据以防止不合法的使用造成的数据的泄密和破坏。
(2)、数据的完整性(Integrity)检查:保证数据的正确性、有效性和相容性。
(3)、并发(Concurrency)控制:对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。
(4)、数据库恢复(Recovery)技术:将数据库从错误状态恢复到某一已知的正确状态。
1.2 数据模型
数据模型是对现实世界数据特征的抽象
数据模型是数据库系统的核心和基础。
数据模型的要求:
- 能比较真实地模拟现实世界。
- 容易为人所理解。
- 便于在计算机上实现。
两类数据模型:
概念模型
概念模型也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计.
概念模型的用途:
- 概念模型用于信息世界的建模。
- 是现实世界到机器世界的一个中间层次。
- 是数据库设计的有力工具。
数据库设计人员和用户之间进行交流的语言。
概念模型的要求:
较强的语义表达能力。
简单、清晰、易于用户理解。
概念模型的表示:
实体-联系法,该方法使用E-R图来描述现实世界的概念模型,E-R方法也被称为E-R模型
信息世界的基本概念:
实体(Entity):客观存在并可相互区别的事物称为实体。
- 属性(Attribute):实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如学生实体可以由学号、姓名、性别、出生年份、系、入学时间等属性组成。(94002268,张山,男,1976,计算机系,1994)这些属性组合起来表征了一个学生。
- 码(Key):唯一标识实体的属性集称为码。例如学号是学生实体的码。
- 域(Domain):属性的取值范围称为该属性的域。例如,学号的域为8位整数,姓名的域为字符串集合,年龄的域为小于38的整数,性别的域为(男,女)。
- 实体型(Entity Type) :具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如,学生(学号,姓名,性别,出生年份,系,入学时间)就是一个实体型。
- 实体集(Entity Set):同型实体的集合称为实体集。例如,全体学生就是一个实体集。
- 联系(Relationship) :在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系。实体之间的联系通常是指不同实体集之间的联系。
- 类型
- 1:1
- 1:n
- m:n
- 类型
逻辑模型和物理模型
- 逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。按计算机系统的观点对数据建模,用于DBMS实现。
- 物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
常见的数据模型:
- 层次模型(Hierarchical Model)
- 网状模型(Network Model)
- 关系模型(Relational Model))
- 优点
- 建立在严格的数学概念的基础上。
- 概念单一。
- 关系模型的存取路径对用户透明。
- 缺点
- 存取路径对用户透明,查询效率往往不如格式化数据模型。
- 为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。
- 优点
- 面向对象数据模型(Object Oriented Data Model)
- 对象关系数据模型(Object Relational Data Model)
- 半结构化数据模型(Semistruture Data Model)