数据库原理与应用

第一章.数据库基础知识

第1节.数据相关概念

数据(Data)

😱 数据库系统(DBS,DataBase System)是指在计算机系统中引入数据库后的系统,一般由计算机硬件系统、操作系统(OS)、数据库(DB)、数据库管理系统(DBMS)、应用开发工具、数据库应用系统(DBAS)、数据库管理员(DBA)和用户(应用用户、程序员、数据库管理员)组成。

数据库(DB,DataBase),是长期存储在计算机内、有组织、可共享的数据集合。

数据库管理系统(DBMS,DataBase Management System),是位于用户和操作系统之间的一层数据管理软件,是计算机系统软件。主要包括:数据定义、数据操纵、数据库的建立和维护、数据库运行和管理。

数据库应用系统(DBAS,DataBase Application System),开发人员利用数据库系统资源开发出来的,面向某一类实际应用的软件系统。

数据库管理员(DBA,DataBase Administrator),负责管理和维护数据库服务器的人。职责包括:数据库设计、数据库维护和改善系统性能,提高系统效率。

😱 数据库系统(DBS)的核心是数据库管理系统(DBMS),数据库管理系统的核心是数据库(数据)(DB)。

😱 数据库技术的根本目的是解决数据共享问题,由数据库管理系统(DBMS)实现数据库中数据的共享。

第2节.数据管理技术的发展阶段

1.人工管理阶段,特点:数据不保存、数据不共享、不具有独立性。

2.文件管理阶段,特点:数据可以长期保存,有文件系统管理数据,具有共享性但是数据的共享性差、冗余度高;数据不一致;数据独立性差;

3.数据库系统阶段,特点:数据结构化、数据共享性高、冗余度低、数据独立性高,由数据库管理系统(DBMS)统一管理和控制

第3节.数据库系统的特点

1.数据结构化

2.数据共享性高,冗余度低

3.数据独立性高

4.由数据库管理系统(DBMS)统一管理和控制

数据库管理系统(DBMS)的控制功能包括:
    1. 数据完整性,通过设置一些完整性规则等约束条件,确保数据的正确性、有效性和相容性。
    2. 数据安全性,防止不合法使用数据库造成的数据泄露和破坏,合法用户只能操作有权限的数据,不合法用户禁止访问。
    3. 并发控制,多个用户同时存取或修改数据时,系统防止由于相互干扰而提供给用户不正确的数据,并防止数据库受到破坏。
    4. 数据库的恢复,由于软硬件破坏、操作员误操作等原因造成数据不正确或丢失,系统有能力将数据库从错误状态恢复到最近某一时刻的正确状态。

第4节.数据库管理系统(DBMS)

1.数据定义,提供数据定义语言(Data Define Language,DDL)

2.数据操作,使用提供的操作语言(Data Manipulation Language,DML)

3.数据库运行管理功能,是DBMS的核心部分。即:数据的完整性控制、数据的安全性控制、并发控制、数据库恢复

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

5.数据的组织、存储和管理

6.数据通信接口

😱 数据库管理系统的位置:应用系统 => 应用开发工具 => DBMS => 操作系统 => 计算机硬件

第5节.常见的数据库系统

1.Microsoft SQL Server,是微软公司的产品

2.Microsoft Access

3.Visual FoxPro

4.Oracle,甲骨文公司的中大型关系型数据库系统,是应用最广泛的数据库管理系统之一。

5.MySQL,甲骨文公司中小网站常用的关系型数据库系统。

5.DB2

6.Sybase

7.Informix

8.System R

第二章.数据模型和数据库系统的结构

第1节.数据模型基础知识

一、数据模型的概念

数据模型也是一种模型,他是对现实世界数据特征的抽象,即现实世界的模拟,数据模型是数据库系统的核心和基础。

数据模型(Data Model)是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供一个抽象的框架。

二、数据模型的构成要素

1.数据结构,用于描述静态特性,是刻画一个数据模型性质最重要的方面,人们通常按照数据结构的类型来命名数据模型,例如层次接结构、网状结构、关系结构的数据模型分别命名为层次模型=>层次数据库、网状模型、关系模型,

层次结构 => 层次数据模型 => 层次数据库 (非关系数据库)

2.数据操作,用于描述动态特性,是指对数据库中各种对象的实例值允许执行的操作的集合,是对数据动态特性的描述。例如对数据的检索、插入、删除和修改。

3.数据的完整性约束,是一组完整性规则的集合,是给定数据模型中数据及其联系所具有的制约和依存的规则。保证数据的正确性和有效性。

三、数据模型的分类

1.概念数据模型

2.逻辑数据模型

😱 现实世界 =第一次抽象=> 概念世界(概念模型) =第二次抽象=> 计算机世界(逻辑模型)

第2节.概念数据模型

一、概念数据模型的基本概念

1.实体

2.属性 

3.码,能唯一标实一个实体的属性

4.域

5.实体型

6.实体集,同类实体型的集合

7.联系   

二、实体间联系的三种模型

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

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

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

三、概念模型的表示方法

E-R图(关系-联系图)

1.实体,用矩形表示,矩形框内写明实体名称。

2.属性,用椭圆形表示,椭圆形内写明属性名称,使用无向边与实体相连。

3.联系,用菱形表示,菱形框内写明联系名,使用无向边与有关实体相恋;联系的属性名用椭圆表示,使用无向边与联系相连。

第3节.逻辑数据模型

逻辑模型包括:层次模型、网状模型、关系模型

层次模型

第4节.数据库系统的结构

一、数据库系统的内部体系结构

😱 数据库系统使用三级模式和两级映射保证数据的物理独立性和逻辑独立性

😱 物理独立性:当数据库的物理存储结构发生改变,由于逻辑结构不发生改变,因此用户的逻辑结构不发生改变。

😱 逻辑独立性:当数据库逻辑结构发生改变,由于模式-外模式的映射关系,使得用户的逻辑结构不发生改变,即应用程序不发生改变。

1.外模式,也称子模式或用户模式(用户的逻辑结构),他是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集。一个数据库可以有多个外模式。

2.模式,也称逻辑模式(概念模式)(数据库逻辑结构),是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等。

3.内模式,也称存储模式(数据库物理结构)。他是数据的物理结构和存储方式的描述,是数据在数据库内部的表示。

4.外模式-模式映射,保证数据的逻辑独立性。

5.模式-内模式映射,保证数据的物理独立性。

😱 两级映射的意义:确保数据独立性、有利于数据共享、简化了用户接口、有利于数据的安全保密

  1. 是数据库与应用程序完全分开,数据库改变时,应用系统不改变

二、数据库系统的外部体系结构

1.单用户结构,桌面数据库系统,将应用程序、DBMS和数据库都安装在一台计算机上,由一个用户独占使用,适合未联网用户、个人用户。例如:Micorsoft Access数据库。

2.主从式结构,是大型主机带多终端的多用户结构的系统,又称主机/终端结构(终端只有输入输出功能)。

3.分布式结构,是分布式网络和数据库技术的结合。

4.客户/服务器结构

5.浏览器/服务器结构

第5节.数据库设计

一、数据库设计的方法

1.手工试凑法

2.规范设计法

二、数据库设计步骤

1.需求分析

2.概念结构设计,与数据的逻辑结构和物理结构无关,常采用E-R图(实体-联系图)完成概念数据模型的设计。

3.逻辑结构设计,和具体的DBMS相关,将概念数据模型转换为DBMS所支持的数据模型。

4.物理结构设计

5.数据库实施与维护

6.数据的载入

😱 现实世界 (E-R图)> 信息世界(概念世界) ()> 计算机世界

三、数据库设计规范

规范化设计目的:逐步消除数据依赖中不合适的部分。

规范化的优点:规范化大大减少了数据冗余;改进了数据库整体组织;增强了数据的一致性;增加了数据库设计的灵活性;

1.第一范式(1NF),要求表的每个字段必须是不可分割的简单数据项,不可拆分,满足原子性。
例如:name字段中包含“张三,男”、“李四,女”。

2.第二范式(2NF),在第一范式基础上,要求每张表必须有主键,且只表达一个意思。表的每个字段和表的主键有依赖。
例如:用户表中的字段有用户姓名、用户性别、用户年龄、身份证号、汽车名称、汽车价格。违反了第二范式。

3.第三范式(3NF),在第二范式的基础上,要求每张表主键之外的的其他字段都只能和主键有直接决定依赖关系。即每列都和主键直接相关而不能间接相关。
例如:员工表中的字段:员工编号、员工姓名、部门编号、部门名称;中部门名称数据冗余,不满足第三范式。

第三章.关系数据库

😱 在给定域中,所有实体及实体之间的联系所对应的关系集合构成一个关系数据库。

😱 关系数据库由关系模型组成,关系模型包括:关系数据结构、关系数据操作、关系数据的完整性约束 三部分组成。

第1节.关系数据模型中的基本概念

1.关系,笛卡尔积D1×D2×D3的任一子集称为定义在D1,D2,D3上的n元关系(Relation),一个关系对应通常所说的一张表,关系的列和关系的行都可以交换位置,属性不可再分割。例如:学生登记表就是一个关系。

2.元组,关系表中的一行即为一个元组。

3.属性,表中的一列即为一个属性,根据是否在候选码中可以分为主属性和非主属性,例如学生登记表中的属性有(学号,姓名,年龄,性别,系名,年级),其中学号就是主属性,其他都是非主属性。

4.码,也称码键,表中的某个属性组,它可以唯一确定一个元组,例如:学生登记表中的学号可以确定唯一的一个学生,他就称为本关系的码。

5.域,一组具有相同数据类型的值的集合,又称“值域” ,域中多包涵的值的个数称为域的基数,属性的取值范围来自某个域。例如:学生登记表中性别的域是(男、女)

6.分量,元组中的一个属性值,每一列中的每一个分量必须来自同一个域。例如:学号:123243

7.关系模式,对关系的描述,一般表示为关系名(属性1,属性2,……属性n)来表示。例如:学生登记表(学号,姓名,年龄,性别,系名,年级)

8.候选码,可标识一个元组的属性或属性集。例如:学生表中学号可以唯一标识一个元组;在学生选课关系表中学号、课程号可以唯一标识一个元组。

10.主码,从多个候选码中选择一个作为查询、插入或删除元组的操作变量,被选用的候选码称为主关系码(主键,主码,关系键,关键字)。例如:学生关系表中姓名、学号都可以作为候选码,我们可以选择学号作为主码,因为学生姓名可能会改变。全码,;外码,学生登记表中的院系编号即为学生登记表的外码;

第2节.关系数据的完整性约束

1.实体完整性,是指主键(主码)不能为空。例如:学生表中主码学号的值不能为空,否则不能找到唯一标识该学生的主码。

2.参照完整性,外键(外码)必须是关系表中主键的值或空值。例如:学生登记表中,院系编号作为院系表中的主码,取值必须为院系表主码中的值。

3.用户定义的完整性,针对某一具体问题,例如:年龄字段的取值范围为0~100。

第3节.关系运算

一、传统的关系运算

😱 把关系看成元组的集合,以元组作为集合中元素来进行运算,其运算是从关系的“水平”方向即行的角度进行的。包括并、差、交和广义笛卡尔积等运算。进行传统关系运算时需要列相同。

1.并,出现在关系R和关系S上的元组的集合,如果元组相同则只保留一个。

2.交,既出现在关系R上,又出现在关系S上的元组集合。

3.差,出现在关系R上,但是不出现在关系S上的元组集合。

4.广义笛卡尔积,R × S,前半部分属于元组R,后半部分属于元组S。

二、专门的关系运算

😱 不仅涉及行运算,也涉及列运算,这种运算是为数据库的应用而引进的特殊运算。包括选取、投影、连接和除法等运算。

1.笛卡尔积,域D1 = {张三,李四,王五},域D1的基数为m1=3,域D2 = {男,女},域D2的基数为m2=2,则笛卡尔积D1×D2 = {张三,男},{张三,女},{李四,男},{李四,女},{王五,男},{王五,女},的元素个数为:3×2 = 6。笛卡尔积实际上是一个二维表。

2.选择,例如:选择教师表中,计算机系并且工资高于1000元的男老师。

3.投影,例如查询教师表中的姓名、教师编号,两列信息。

4.连接,分为大于、等于、小于链接,是在广义笛卡尔积的基础上进行符合条件的运算。

5.自然连接,两个关系中都具有同一个属性A,根据属性A去除相同的进行连接。

第四章.SQL语言

第1节.SQL语言概念

一、SQL语言定义

SQL:结构化查询语言(Structured Query Language,SQL)是一种数据库查询和程序设计语言,用于存取数据及查询、更新和管理关系数据库系统。

SQL语言包括:数据定义语言(DDL)、数据查询语言(DQL)、数据操纵语言(DML)、数据控制语言(DCL)

视图,视图是从一个或多个基本表导出的表,是一个虚表。

二、SQL语言的特点

1.SQL语言是类似于英语的自然语言,简单易用

2.SQL语言是一体化的语言,包括数据定义、数据操作、数据查询、数据控制。

3.SQL语言是一种非过程化的语言。

4.SQL语言是一种面相集合的语言。

5.SQL语言是一种自函式语言,又是嵌入式语言。

第2节.数据定义语言(DDL)

数据定义语言,DDL

1.创建数据表

CREATE TABLE 'user'(
    id int(11) unsigned not null auto increment comment "用户ID",
    username varchar(32) not null comment "用户名称",
    age int(3) not null comment "用户年龄",
    primary key(id)
)ENGINE == INNODB CHARSET = UTF-8;

2.修改表名称

ALTER TABLE 

3.删除数据表

DROP TABLE 'user'

第3节.数据操作语言(DML)

数据操作语言,DML,操纵数据库中的数据,可以对表或视图进行插入记录(INSERT)、删除(DELETE)和修改(UPDATE)操作

第4节.数据查询语言(DQL)

第5节.数据控制语言(DCL)

第五章.Access数据库

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

进阶的疯狗der

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

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

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

打赏作者

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

抵扣说明:

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

余额充值