数据库系统概论学习 1 绪论

简介: 数据库系统概论学习 1 绪论

1.1.1 数据、数据库、数据库管理系统、数据库系统


一、数据 Data

数据是数据库中存储的基本对象


定义:描述事物的符号记录称为数据,描述事物的符号可以是数字、文字、图像、图形、声音、语言等表现形式,它们都可以经过数字化后存入计算机。


二、数据库 DB

数据库是长期储存在计算机内,有组织的,可共享的大量数据的集合。


特点:

数据库数据具有永久存储、有组织和可共享三个基本特点。


三、数据库管理系统 DBMS

主要功能

1.数据定义功能

DBMS提供数据定义语言,用户通过它可以 方便的对数据库中的数据对象进行定义。

2.数据组织、存储、管理

DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存储路径

3.数据操纵功能

DBMS提供数据操纵语言DML,用户可以使用DML操纵数据、实现对数据库的基本操作如查询、修改、删除、插入等

4.数据库的事务管理和运行管理

数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。

5.数据库的建立和维护功能

数据库初始数据的输入、转换功能、数据库的转换、数据库的重组织功能和性能监视、分析功能等

四、数据库系统 DBS

数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。


结构

1.1.2 数据管理技术的产生和发展

数据库管理技术经理了人工管理、文件系统、数据库系统三个阶段

一、人工管理阶段

特点:

1>数据不保存   2>应用程序管理数据   3>数据不共享   4>数据不具有独立性

缺点:

数据的逻辑结构或物理结构发生变化后,必须对应用程序作出相应的修改,这就加重了程序员的负担。

二、文件系统阶段

特点:

1>数据可以长期保存

2>由文件系统管理数据

缺点:

1>数据共享性差,冗余度大

2>数据独立性差

三、数据库系统阶段

特点:

1>数据结构化

2>数据的共享性高、冗余度低、易扩充。

3>数据独立性高

4>数据由DBMS统一管理和控制

1.2 数据模型

数据模型也是一种模型,它是对现实世界数据特征的抽象,数据模型就是现实世界的模拟。

1.2.1 两类数据模型

数据模型应满足三方面要求:

1>能比较真实的模拟现实世界

2>容易为人所理解

3>便于在计算机上实现

第一类:概念模型

概念模型也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。

第二类:逻辑模型和物理模型

1>逻辑模型主要包括层次模型、网状模型、关系模型、面向对象模型和对象关系模型等,它是按计算机系统的观点对数据建模,主要用于DBMS的实现。


2>物理模型是对数据最低层的抽象,它描述数据在系统内部的表示方法和存取方法,在磁盘和磁带上的存储方式和存取方法是面向计算机系统的。

1.2.2 数据模型的组成要素

数据模型通常由数据结构、数据操作、数据的完整性约束条件三部分组成

一、数据结构

数据结构描述数据库的组成对象以及对象之间的联系,数据结构是所描述的对象类型的集合,是对系统静态特性的描述。

二、数据操作

数据库主要有查询和更新(包括插入、删除、修改)两大类操作,数据操作是对系统动态特性的描述。

三、数据的完整性约束条件

数据的完整性约束条件是一组完整性规则(条件和要求的限制)在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。

1.2.3 概念模型

概念模型是现实世界到机器世界的一个中间层次,表现为:

1>概念模型用于信息世界的建模;

2>现实世界到信息世界的第一层抽象

3>数据库设计人员进行数据库设计的有力工具

4>数据库设计人员和用户之间进行交流的语言

概念模型要求:

1>具有较强的语义表达能力

2>能够方便、直接地表达应用中的各种语义

3>简单、清晰、易于用户理解

1.2.4 最常用的数据模型

数据库中最常用的逻辑数据模型有:层次模型、网状模型、关系模型、面向对象模型、对相关系模型。

1.层次模型(树)

2.网状模型(图)            

                             

3.关系模型:二维表格(表格就是关系模型)

1.2.5 关系模型

一、关系数据模型的数据结构

关系

一个关系对应通常说的一张表

元组

表中的一行即为一个元组

属性

表中的一列即为一个属性,给每一个属性起一个名称即属性名

也称为码键。表中的某个属性组,它可以唯一确定一个元组,如学号可以确定唯一的学生,也就成为本关系的码

属性的取值范围,如人的年龄一般在1~150岁之间

分量

元组中的一个属性值

关系模式

对关系的描述,一般表示为:关系名(属性1,属性2,...,属性n)

二、关系数据模型的操纵与完整性约束

关系数据模型的操作主要包括查询、插入、删除和更新数据,这些操作必须满足关系的完整性约束条件

关系的完整性约束条件包括:

1.实体完整性 2.参照完整性 3.用户定义的完整性

三、关系数据模型的优点

1.关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的

2.关系模型的概念单一

3.关系模型的存取路径对用户透明,从而具有更高的数据独立性,更好的安全保密性也简化了程序员的工作和数据库开发建立的工作

数据和数据之间的关系E-R图表示

一、信息世界中的基本概念

1.实体

客观存在并可相互区别的事物称为实体 例如:学生、职工

2.属性

实体所具有的某一特性称为属性

3.码

唯一标识实体的属性集称为码 例如:学号

4.域

域是一组具有相同数据类型的值的集合,属性的取值范围来自某个域。例如:学生性别:(男\女)

5.实体型

具有相同属性的实体必然具有共同的特性和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体集 例如:学生(学号,姓名,性别,出生年月,入学时间)就是一个实体型。

6.实体集

同一类型实体的集合称为实体集 例如:全体学生

7。联系

在现实世界中,事物内部以及事物之间是有联系的

实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系

二、两个实体型之间的联系

1.一对一联系(1:1)

对于实体集A中每一个实体,实体集B中最多有一个元素与之联系

例如:学校里面,一个班级只能有一个正班长。

2.一对多联系(1:n)

对于实体集A中每一个实体,实体集B中由n个实体与之联系。

例如:一个班级有若干名学生,而每个学生都只在一个班级中学习,则班级与学生之间具有一对多的联系。

3.多对多联系(m:n)

对于实体集A中的每一个实体,实体集B中由n个实体与之联系,实体集B中的每一个实体,实体集A中也有m个实体与之联系,则称实体集A和实体集B具有多对多联系,记为m:n

例:

一门课程同时有若干个学生选秀,而一个学生可以通识选修多门课程,则课程和学生之间具有多对多联系

三、两个以上的实体型之间的联系

两个以上的实体型之间也存在一对一、一对多、多对多的联系。

例1:课程、教师、参考书。多对多的联系

例2:供应商、项目、零件 多对多的联系

四、单个实体型内的联系

同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。

例:职工与领导间的关系 多对一关系 一对多关系

五、概念模型的一种表示方法:实体—E-R图 实体-联系图

E-R图提供了表示实体型、属性和联系的方法

实体型:

用矩形表示,矩形框内写明实体名

属性:

用椭圆形表示,并用无向边将其与相应的实体型连接起来。

例:一个学生具有学号、姓名、成绩、专业等信息

联系:

用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n,m:n)  

注:如果一个联系有属性,则这些属性也要用无向边与该联系连接起来。

例:如果用“供应量”来描述联系“供应”的属性,表示某供应商供应了多少数量的零件给某个项目。那么这三个实体及其之间联系的E-R图如下:

六、实例

用E-R图表示某个工厂物资管理的概念模型

物资管理涉及的实体有:

1.仓库 属性有仓库号、面积、电话号码

2.零件 属性有零件号、名称、规格、单价、描述

3.供应商 属性有供应商号、姓名、地址、电话号码、账号

4.项目 属性有项目号、预算、开工日期

5.职工 属性有职工号、姓名、年龄、职称

实体之间的联系如下:

1>一个仓库可以存放多种零件,一种零件可以存放在多个仓库中,因此仓库和零件具有多对多的联系,用库存量表示某种零件在某个仓库中的数量

2>一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,所以仓库与职工是一对多的关系

3>职工之间具有领导-被领导的关系,即仓库主任领导若干保管员,因此职工实体集中具有一对多的联系

4>供应商、项目、零件三者间具有多对多的联系,一个供应商可以提供给若干项目多种零件,每个项目可以使用不同供应商供应的零件,每种零件可以由不同供应商供给

实体及属性的E-R图:

完整的E-R图:(横线连接的是各实体的属性)

1.3 数据库系统结构

1.3.1 数据库系统模式的概念

模式是数据库中全体数据的逻辑结构和特征的描述,同一个模式可以有很多实例

模式是概念上的内容,实例是具体到模式内部

例:

在学生选课数据库模式种,包含学生记录、课程记录和学生选课记录,则2003年有一个学生数据库的实例,该实例包含了2003年学校中所有学生的记录(如果某校有10000个学生,则有1000个学生记录)、学习开设的所有课程的记录和所有学生选课的记录。

1.3.2 数据库系统的三级模式结构

数据库系统的三级模式结构是指数据库系统由外模式(应用模式)、模式(概念模式)、和内模式(物理模式)三级构成。

一、模式

模式也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

它是数据库系统模式结构的中间层,既不涉及数据的物理细节和硬件环境,也与具体的应用程序,所使用的应用开发高级程序设计语言无关。

二、外模式

外模式也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,始于某一应用有关的数据的逻辑表示

注意:

1.外模式通常是模式的子集,一个数据库可以有多个外模式。

2.同意外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。

3.外模式是保证数据库安全的一个有力措施,每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。

1.3.3 数据库的二级映像功能与数据独立性

数据库系统的三级模式是对数据的三个抽象级别,他把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。

数据库管理系统在这三级模式之间提供了两层映像:

1.外模式/模式映像

2.模式/内模式映像

两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性

1.4 数据库系统的组成

数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统和数据库管理员构成。

一、硬件平台及数据库

硬件资源要求:

1.要有足够大的内存,存放操作系统、DBMS的核心模块、数据缓冲区和应用程序。

2.要有足够大的磁盘或者磁盘阵列等设备存放数据库,有足够的磁带(光盘)作数据备份

3.要求系统有较高的通道能力,以提高数据传送率

二、软件

软件主要包括:

1.DBMS 是为数据库的建立、使用和维护配置的系统软件

2.支持DBMS运行的操作系统

3,具有与数据库接口的高级语言及编译系统,便于开发应用程序

4.以DBMS为核心的应用开发工具

5.为特定应用环境开发的数据库应用系统

三、人员

开发、管理和使用数据库系统的人员主要是:数据库管理员、系统分析员与数据库设计人员、应用程序员和最终用户。不同的人员设计不同的数据抽象级别,具有不同的数据视图,如下图:

1.数据库管理员(DBA)

需要有专门的管理机构来监督和管理数据库系统,DBA则是这个机构的一个人员,负责全面管理和控制数据库系统。

具体职责包括:

1.决定数据库中的信息内容和结构,数据库中要存放哪些信息,DBA要参与决策;

2。决定数据库的存储结构和存取策略;

3.定义数据库的安全性要求和完整性约束条件;

4.监控数据库的使用和运行;

5.数据库的改进和重组重构;

2.系统分析员和数据库设计人员

系统分析员

负责应用系统的需求分析和规范说明,要和用户及DBA相结合,确定系统的硬件软件配置,并参与数据库系统的概要设计。

数据库设计人员

负责数据库中数据的确定,数据库各级模式的设计

3.应用程序员

应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装

4.用户

指最终用户,最终用户通过应用系统的用户接口使用数据库

                                                                                                                     


目录
相关文章
|
1月前
|
SQL NoSQL 关系型数据库
数据库学习
【10月更文挑战第8天】
20 1
|
1月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
61 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
1月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
57 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
1月前
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
22 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
|
1月前
|
关系型数据库 MySQL 数据库
mysql关系型数据库的学习
mysql关系型数据库的学习
18 0
|
1月前
|
存储 NoSQL Java
使用 Java 了解和学习 NoSQL 数据库:三个主要优势
使用 Java 了解和学习 NoSQL 数据库:三个主要优势
12 0
|
3月前
|
SQL 关系型数据库 MySQL
「Go开源」goose:深入学习数据库版本管理工具
「Go开源」goose:深入学习数据库版本管理工具
「Go开源」goose:深入学习数据库版本管理工具
|
3月前
|
SQL 存储 关系型数据库
如何系统地学习数据库?
如何系统地学习数据库?【8月更文挑战第25天】
51 0
|
3月前
|
存储 算法 数据库
带你学习DM数据库的基本操作
带你学习DM数据库的基本操作
296 0
|
4月前
|
SQL 存储 关系型数据库
关系型数据库PostgreSQL学习
【7月更文挑战第4天】
456 2