文章目录
一、数据库系统概述
数据库基本概念和特点
数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。
数据库中的数据按照一定的数据模型组织、描述,具有较小的冗余度、较高的数据独立性和可扩展性,并且可为各种用户所共享。
二、数据模型
2.1E-R数据模型
是一种用于描述实体(Entity)和实体之间关系(Relationship)的数据模型,是现代数据库管理系统中广泛使用的一种数据模型。
矩形表示实体,椭圆表示实体属性,菱形表示实体之间的关系。
2.2层次数据模型
层次模型是一种树形结构,其中父节点可以拥有多个子节点,但每个子节点只能拥有一个父节点。在层次数据模型中,每个节点都可以包含多个属性。由于其树形结构,层次数据模型通常用于处理具有层次结构的数据,例如组织机构。
2.3网状数据模型
网状数据模型是层次数据模型的拓展,它允许每个节点具有多个父节点和多个子节点。在网状数据模型中,节点之间的关系可以是多对多的。由于其复杂性,网站数据模型很少使用。
2.4关系数据模型
关系数据模型是现代数据库管理系统中最常使用的数据模型。在关系数据模型中,数据被组织为表格形式,每个表格包含多个列和行。每列代表一个属性,每行代表一个实例。关系数据模型通常使用结构化查询语言(SQL)进行数据检索和操作,这种数据模型的优点是便于使用和理解,并且能处理大量数据。
面向对象数据模型
面向对象数据模型是一种基于对象概念的数据模型,它将数据组织成对象的集合,每个对象都具有自己的属性和方法。对象可以通过继承、多态和封装等概念相互关联和操作,从而更加自然地表示现实世界中对象和关系。
数据库的体系结构
三、数据库系统的体系结构
3.1数据库系统体系结构
三级模式:
外模式:也称为用户模式或者子模式,是面向用户的数据视图,描述了用户所需的数据,包括数据的组织,访问路径和安全限制等。每个用户可以定义自己的外模式以满足不同的需求。
概念模式:也称为逻辑模式,是整个数据库系统的逻辑结构,描述了数据的总体组织和关系,是外模式和内模式之间的中介层。概念模式包括所有的实体、属性、关系和约束条件,但不涉及具体的存储和实现方式
内模式:也称为存储模式,是数据库的物理系统,描述了数据在存储介质上的存储方式和物理结构。是数据在数据库内部的组织方式。
两级映像:
外模式/概念模式映像:当概念模式改变时,由数据库管理员对各个外模式/概念模式映像做出相应改变,可以使得外模式保持不变。
数据的逻辑结构改变了,应用程序也可不变,保证了数据和程序的逻辑独立性。
概念模式/内模式映像:当数据库存储结构改变时,由数据库管理员对概念模式/内模式做出相应改变,可以使得概念模式保持不变。
数据的物理结构改变了,应用程序也可不变,保证了数据和程序的物理独立性。
3.2数据库系统
数据库系统组成:硬件平台、数据库、软件、数据库管理员
数据库系统分类:关系型数据库、非关系型数据库
3.3数据库管理系统
数据库管理系统:数据库管理系统是数据库系统的核心组成部分,负责管理数据库的所有操作,包括数据的存储、查询、修改和删除等。它是位于用户和操作系统之间的一层数据管理软件。
数据库管理系统功能:
1.数据定义
2.数据组织、存储、管理
3.数据操纵
4.数据库的事务管理和运行
5.数据库的建立与维护
数据库管理系统工作模式:
1、接受应用程序的数据请求和处理请求
2、将用户的数据请求(高级指令)转换成复杂的机器代码(底层指令)
3、实现对数据库的操作
4、从对数据库的操作中接受查询结果
5、对查询结果进行处理(格式转换)
6、将处理结果返回给用户
四、关系数据库结构化查询语言——SQL语言
4.1基本表定义
创建数据库:
create database 学生选课;
打开数据库
use 学生选课;
基本表创建
基本表创建:
学生表创建
create table S
(
sno char(6) primary key,--定义主键primary key
sn char(10) not null,--姓名不能为空值
sd char(16),
sb date,
sex char(2) default '男',--性别默认为男
check (sex in ('男','女'))--检查所填性别是不是在男/女这两选项之间
);
选课表创建
create table sc
(
sno char(6),
cno char(6),
grade dec(4,1),--dec是小数decimal缩写,dec(p,d)表示p位数字组成,小数点后有d位数字
primary key(sno,cno)--一个表有多个主键primary key(主键1,主键2),
foreign key (sno) references s(sno),--定义外键约束
foreign key (cno) references c(cno),--foreign key (属性名1) references 参照表名(属性名2)
check (grade between 0 and 100)--检查成绩是不是在0-100之间
);
课程表创建
create table c
(
cno char(6) primary key,
cn char(10),
pc char(6),
foreign key (pc) references c(cno)
);
基本表修改:
在学生表s中加入一个属性列sh表示学生的籍贯
alter table s add sh char(30);
在学生表s中补充定义sno 为主键
alter table s add primary key(sno);
将基本表s中的学生姓名sn长度修改为12
alter table s alter column sn char(12);
删除基本表s中学生的性别sex属性列
alter table s drop column sex;
基本表删除:
删除基本表s
drop table s cascade;
4.2查询结果显示
投影属性列
查询显示所有学生的信息
select * from s;
去除重复元组
查询选修了课程的学生的学号
select distinct sno from s;
聚集函数