数据库与数据模型
数据库技术一般包含 数据管理和数据处理
数据库系统本质上是一个用计算机存储数据的系统。
基本概念:
数据->data 是数据库中存储的基本对象
(文本,图形,图像,音频,视频等都是数据) :数据是描述事物的符号。
数据的解释是对数据演绎的说明,数据的含义成为数据的语义。
数据库-> Database /DB 存放数据的仓库
数据库是长期存储在计算机中的有组织的,可共享的大量数据的集合。
数据库的特点:永久存储,有组织,可共享
数据库管理系统->Database Management System /DBMS 是一个专门用于实现对数据进行管理和维护的系统软件
数据库系统->Database System / DBS
在计算机引入数据库后的系统,一般由数据库、数据库管理系统、应用程序、数据库管理员组成。
数据库管理员->Database Administrator/DBA
通常:把数据库系统成为数据库
应用程序 -> DBMS -> DB -> disk
数据管理技术的发展
主要:文件管理和数据库管理
数据独立性
应用程序不依赖于任何特定的物理表示方式和访问技术,包括:物理独立性 和 逻辑独立性
物理独立性:当数据的存储位置或者结构发生变化时,不影响程序的特性。
逻辑独立性:当表达现实世界的信息内容发生变化时,如增,删等,也不影响应用程序的特性。
数据与信息
数据:描述事物的符号记录
信息:从数据中获得有意义的内容
语法:数据的格式规定
语义:数据的含义
数据是信息存在的一种形式,只有通过解释或者处理才能成为有用的信息
数据库中数据的特征:
1:静态特征:包括数据的基本结构、数据间的联系、数据取值范围的约束
2:动态特征:是指对数据可以进行的操作以及操作的规则。(查询,更改(插入,删除,更新))
数据模型三要素:一般情况下,对数据的静态特性和动态特征的描述。
即在描述数据时要包括:数据的基本结构、数据的约束条件、定义在数据上的操作。
数据模型
数据模型(data model) 是对现实世界数据特征的抽象。
数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。
数据模型满足3个方面的要求:
1:能够真实地模拟现实世界
2:容易被人们理解
3:能够方便的在计算机上实现
模型:
1:概念层 数据模型
2:组织层数据模型/数据模型
包括:层次模型、网状模型、关系模型、对象-关系模型
层次模型:树形结构
网状模型:图形结构
关系数据模型:
是目前最重要的一种数据模型。
关系数据模型源于数学,它把数据看成是二维表中的元素,而这个二维表在关系数据库中就称为关系。
用关系表示实体和实体之间的联系的模型就称为关系数据模型。
Oracle,Access,Microsoft SQL Server 等都是关系型的数据库管理系统。
关系型数据模型与层析模型和网状模型的最根本区别:关系数据模型采用非导航式的数据访问方式,数据结构的变化不会影响对数据的访问。
实体-联系模型:(概念层)
实体:(entity)
具有公共性质,并可区分的现实世界对象的集合,或者说是具有相同结构的对象的集合。(职工、学生、教师)
属性:attribute
描述实体或者联系的性质或特征的数据项,属于一个实体的所有实例都具有相同的薪性质
实体的标识属性/实体的码:能够唯一标识实体的一个属性或最小的一组属性。
联系:relationship
联系是数据之间的关联关系,是客观存在的应用语句链。
实体内部的联系。一个实体内部属性之间的联系。
实体之间的联系。不同实体属性之间的联系。
联系:一对一联系,一对多联系,多对多联系。
数据库结构:
三级模式,二级映射
模式的基本概念:
数据模型:描述数据的组织形式
模式:是用给定的数据模型对具体的数据进行描述。
模式是数据库中全体数据的逻辑结构和特征的描述,实际上对应的是关系表的表头。
模式的一个具体值就称为模式的一个实例。模式相当于二维表表头,那么二维表中的每一行就相当于模式的一个实例。
三级模式结构:
数据库的外模式、模式、内模式
1:外模式
外模式/用户模式/子模式,它的内容来自模式。
外模式通常是模式的子集,一个数据库可以有多个外模式。
外模式同时也是保证数据库安全的一个措施。
外模式也是关系的,或者是接近关系的。
2:模式
模式/逻辑模式/概念模式:是对数据库中全体数据的逻辑结构和特征的藐视,是所有用户的公共数据视图,是数据库结构的中间层。
模式由许多概念记录类型的值构成。
模式实际上是数据库数据在逻辑级上的视图,一个数据库只有一个模式。
关系数据库中的模式一定是关系的。
3:内模式
内模式/存储模式。
内模式与物理层不一样。
内模式不是关系的,它是数据的物理存储方式。事实上,关系模型与内模式无关。
模式映像与数据独立性
外模式/模式映像 :分开应用程序与DB,实现逻辑独立性。
模式/内模式映像 :分开应用程序与DB,实现物理独立性。
使得数据库应用程序不随数据库数据的逻辑或存储结构变化而变动。