数据库系统教程——数据库概论(一)

简介: 数据库系统教程——数据库概论(一)

1.1 引言



一、概念


  • 1.数据:字符、文字(字符串)、数值(整型、浮点型等)、图像(RGB、RGBA)、声音等
  • 2.数据库:存储在介质上的相关的数据集合。


  1. 数据库发展阶段:


  • ①人工管理阶段(不保存在计算机上)
  • ②文件管理阶段(效率低,管理麻烦)
  • ③数据库低级管理阶段(正处于)
  • ④数据库高级管理阶段
    注: ③和④可以合并为数据库管理阶段


二、数据库类型


  • 1、网状型数据库(未普及)
  • 2、层次型数据库(未普及)
  • 3、关系型数据库(普及)


关系型数据库:

由二维表格表示:由行列组成

举例:学生表、教师表、课程表


学生表:


学号 姓名 性别 专业 入学时间
D001 张三 犯罪专业学 2019年
D002 李四 狱警专业 2016年


教师表:


工号 教师姓名 教师性别 教授课程 受欢迎程度
C001 罗老师 刑法学(张三研究学) 非常受欢迎


数据库的描述



一、数据库的概念:

1、实体:客观存在的事物

2、属性:实体的某一特征

3、标识符:唯一标识实体特征


二、逻辑设计中数据的描述

1、字段:关系列表中的一列

2、记录:关系列表中的一行

3、文件:同类记录的集合

4、关键码:唯一标识记录的字段


三、物理设计中数据的描述

1、位(bit,b)

2、字节(B)

3、字(word)

4、块(Block)

5、桶(Bucket)

6、卷(Volume)


四、数据联系的描述

1、1:1一对一联系

2、1:N一对N联系

3、M:N多对多联系


E-R图:

①、实体用方框

②、属性用椭圆表示

③、联系用菱形表示

④、无向线用横线表示(没有方向的线)


E-R表举例:


1:1


234c71e1ddd4447f93540c56be647422.png


以上为1:1模型

可以转换为表格就是


工厂表

许可证编号 地址 面积
12345667 xxxxxxx 1000


厂长表:

身份证号码 姓名 电话 许可证编号
10xxxxxx 张三 13xxxxxxxx 123xxxxx


工厂表中,许可证编号为标识符,里面的内容是唯一存在的

厂长表中,身份证号码是标识符,是唯一存在的

厂长表中许可证编号是,两者的关联对象,使用许可证编号将两者进行一一对应。

注:此处假设一个国产一个厂长,每个厂长只能够带领一个工厂!


1:N


387b1377044d4b629deaad002a881f52.png



此处仅表示一个仓库里面存储了多个产品

以上为1:N模型

可以转换为表格就是


仓库表

仓库编号 地址 面积
12345 xxxxxxx 1000


产品表:

产品编号 产品名称 数量 仓库编号
10xxxxxx 特斯拉A100显卡 0 123xxxxx


仓库表中仓库编号为标识符,里面的内容是唯一存在的

产品表中,产品编号是标识符,是唯一存在的

产品表中仓库编号是,两者的关联对象,使用仓库编号将两者进行一 一对应。


M:N


1c3911409f2b4917821fb05a5e8b55a2.png


这里多个零件和不同的供应商有对应,所以应该就是M:N模式


供应商表

供应商编号 地址 名称
12345 xxxxxxx 供应商1


零件表:

零件编号 零件名称 数量
10xxxxxx 膨胀螺钉 10套


供应表(MN对应关系表):

供应商编号 零件编号 供应时间 供应数量
12345 10xxxxxx 2021.09.15 10套


供应商表中供应商编号为标识符,里面的内容是唯一存在的

零件表中,零件编号是标识符,是唯一存在的

供应表中供应商和零件是两个关键值,两者的相互关联,使用供应表将供应商和零件进行一 一对应。


多组对应


4bd480d39a524a7c8e2212c073aa0ad2.png


存在多组对应关系


教师表

工号 教师姓名 联系电话
001 王老师 134xxxxxx


学生表:

学号 学生姓名 专业
19010010 张三 计算机科学与技术


课程表:

课程编号 课程名称 工号
01001 数据库系统教程 001


学习表(学生与课程对应表)

课程编号 学号 成绩
01001 19010010 100


教师表中工号为标识符,里面的内容是唯一存在的

学生表中学号为标识符,里面的内容是唯一存在的

课程表课程编号为标识符,里面的内容是唯一存在的,其中工号和教师表的数据进行对应(映射)

学习表通过课程编号和学号把课程表和学生表进行对应,同时得到成绩数据。


弱实体与强实体


弱实体要依赖与强实体,没有强实体,弱实体就不复存在。

强实体也可以称作“父实体”

表达方式


3053aaa65d3b431095b43d10fdbecaf6.png


子类实体与超类实体


低层的实体表达了与高层实体有特殊联系的情况下,就称较高层的实体类型为超体。

子类和超类之间具有继承关系,子层具有比超体更多的属性。

这种继承性是通过子类实体和超实体有相同的实体表示符实现的。


9768e7fd73a74506b26d456b2e629e69.png

练习


下表应该怎么样完成呢?


72ce895d05d548d288443c72be5201ef.png


商品表(商品号,商品名,规格,单价)

商店表(商店编号,地址,商品名)

销售表(商品号,商店编号,月销售)

职工表(职工编号,业绩,性别,姓名,聘期,月薪,商店编号)


a70ac1b691d24fabbac69bd275f4813b.png



公司表(公司编号,公司名,公司地址)

仓库表(仓库编号,仓库地址,仓库名,公司编号)

职工表(职工编号,性别,姓名)

聘用表(职工编号,仓库编号,工资,聘期)

目录
相关文章
|
19天前
|
存储 机器学习/深度学习 监控
南大通用GBase 8s数据库onbar基础使用教程
数据备份与恢复是确保数据安全和业务连续性的关键。onbar作为GBase 8s数据库的备份工具,需配合存储管理器使用,通过配置BAR_BSALIB_PATH等参数,实现数据的备份与恢复。本文详细介绍了onbar的配置、备份、恢复及监控流程,帮助数据库管理员构建高效的数据保护方案。
|
2月前
|
存储 SQL 关系型数据库
【入门级教程】MySQL:从零开始的数据库之旅
本教程面向零基础用户,采用通俗易懂的语言和丰富的示例,帮助你快速掌握MySQL的基础知识和操作技巧。内容涵盖SQL语言基础(SELECT、INSERT、UPDATE、DELETE等常用语句)、使用索引提高查询效率、存储过程等。适合学生、开发者及数据库爱好者。
58 0
【入门级教程】MySQL:从零开始的数据库之旅
|
2月前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
|
3月前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
3月前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
2月前
|
SQL NoSQL MongoDB
一款基于分布式文件存储的数据库MongoDB的介绍及基本使用教程
一款基于分布式文件存储的数据库MongoDB的介绍及基本使用教程
51 0
|
2月前
|
存储 NoSQL API
.NET NoSQL 嵌入式数据库 LiteDB 使用教程
.NET NoSQL 嵌入式数据库 LiteDB 使用教程~
|
4月前
|
SQL 存储 小程序
【教程】navicat配合HTTP通道远程连接SQLite数据库
本文介绍了如何通过 Navicat Premium 工具配合 n_tunnel_sqlite.php 和 HTTP 通道远程连接服务器上的 SQLite 数据库。SQLite 是一种自给自足的、无服务器的 SQL 数据库引擎,由于其端口未对外开放,直接使用 Navicat 进行远程连接不可行。文章详细记录了使用 HTTP 通道实现远程连接的过程,包括定位本地 `ntunnel_sqlite.php` 文件,将其上传至服务器,并通过 Navicat 配置 HTTP 通道连接 SQLite 数据库的具体步骤。
211 0
【教程】navicat配合HTTP通道远程连接SQLite数据库
|
4月前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的前后端分离的选课管理系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js技术栈的高校选课管理系统的设计与实现。该系统采用前后端分离架构,旨在提高选课效率、优化资源分配及提升用户体验。技术栈包括:后端Spring Boot 2.0、前端Vue 2.0、数据库MySQL 8.0、开发环境JDK 1.8和Maven 3.6等。系统功能覆盖登录、学生信息管理、选课管理、成绩查询等多个方面,并针对学生、教师和管理员提供了不同的操作界面。系统采用了响应式设计,支持多设备访问,并通过Element UI增强了界面的友好性和交互性。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的前后端分离的选课管理系统(含教程&源码&数据库数据)
|
4月前
|
SQL Shell API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API