关系数据库及其设计

news2024/12/25 22:08:07

目录

一、关系数据库 

二、关系数据库设计

1、需求分析

2.概念结构设计

3.逻辑结构设计

4.数据库表的优化与规范化

5、规范化的大学数据库

6、数据库中表间关系

三、关系数据库的完整性

1.实体完整性约束(PRIMARY)

2.唯一性约束(UNIQUE)

3.参照完整性约束(FOREIGN)

4.检查(CHECK)和缺省值(DEFAULT)约束


一、关系数据库 

在关系数据库中,一个关系就是一张二维表,它由行和列组成:

 表中的一行就是一个元组(也称记录)

表中的列为一个属性,给每个属性起一个名即为其属性名(也称字段名)

二、关系数据库设计

1、需求分析

  • 需求分析阶段的任务是收集数据库所需要的信息内容和数据处理规则,确定建立数据库的目的。
  • 在需求分析调研中,必须和用户充分讨论,确定数据库所要进行的数据处理范围,数据处理的流程以及数据取值范围的界定。
  • 描述需求分析常用的方法有数据流图、数据字典等。

2.概念结构设计

  • 概念结构设计是对现实世界的一种抽象,即对实际的人、物、事和概念进行人为处理,抽取人们关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述。
  • 为了能够完成上述目标,我们把现实世界中客观存在并可相互区别的事物称为实体。
  • 实体集之间存在各种联系(Relationship),主要有三类:一对一联系(1:1)、一对多联系(1:n)、多对多联系(m:n)。
  • 描述概念模型的有力工具是E-R模型。

3.逻辑结构设计

关系模型的逻辑结构是一组关系模式的集合。

将E-R图转换为关系模型一般遵循如下原则:

(1)实体与实体属性的转换

     一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。

(2)实体间联系的转换

① 一个1:1联系可以转换为一个独立关系模式,也可以将任意一端关系中的码合并到另一端的关系模式中。

② 一个1:n联系可以转换为一个独立的关系模式,也可以将一端关系中的码与n端对应的关系模式合并。

③一个m:n联系必须转换为一个关系模式。

4.数据库表的优化与规范化

在数据需求分析的基础上,进行概念结构和逻辑结构设计,并将数据信息分割成数个大小适当的数据表。

关系模型的规范化理论是研究如何将一个不规范的关系模型转化为一个规范的关系模型理论。数据库的规范化设计,要求分析数据需求,去除不符合语义的数据。确定对象的数据结构,并进行性能评价和规范化处理,避免数据重复、更正、删除、插入异常。

规范化理论认为,关系数据库中的每一个关系都要满足一定的规范。根据满足规范的条件不同,可以划分为五个等级,通常在解决一般性问题时,只要把数据规范到第三范式标准就可满足需要。

5、规范化的大学数据库

(1)学生基本资料表(学号、身份证号、姓名、性别、移动电话、城市、专业、所在院系、累计学分),主键为学号。

(2)课程基本资料表(课号、课名、教材名称、编著者、出版社、版号、定价),主键为课号。

(3)教师基本资料表TEACHER(工号、身份证号、姓名、性别、移动电话、城市、院系、职称、负责人工号),主键为工号,外键是负责人工号,参考本表的工号。

(4)开课计划表(开课号课号工号、开课地点、开课学年、开课学期、开课周数、开课时间、学分) 主键为开课号,外键一是课号,参照课程表中的属性课号,外键二是工号,参照教师表中的属性工号。

(5)注册选课表(学号、开课号、成绩) 主键为学号和开课号,外键为开课号,参考开课计划表中的开课号。

6、数据库中表间关系

学生表、开课表和选课表之间的联系

选课表中每一行表示一个学生选择了某门计划开设的课程。

选课表的学号列中的每个值都与学生表中的学号列的某个值相匹配

同样,开课号列中的每个值也都与开课表中的开课号列的某个值相匹配

 

三、关系数据库的完整性

1.实体完整性约束(PRIMARY)

实体完整性规则是主关键字段中的诸属性值不能取空值

例如,在学生基本资料表中,我们规定主键学号O不能取空值。

2.唯一性约束(UNIQUE)

唯一性约束规则是在约束的字段上不能有相同值出现

例如,在学生基本资料表中,学号是唯一标识每个学生实体的,所以该字段的值就不能出现重复的学号值。又例如在课程基本资料表中,学校设置的课程一般是不允许有一样名字的,所以课号值(或课程名,取决谁是主键)就必须有唯一。

3.参照完整性约束(FOREIGN)

参照完整性约束规则要求外关键字的值必须来源于被参照关系表的取值或为空值。

所谓外键是:设F是基本关系R的一个或一组属性,但不是关系R的关键字。如果F与基本关系S的主关键字Ks相对应,则称F是基本关系R的外关键字,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。

例如,选课表中的学号和开课号字段,单独都不是选课表的关键字。但是,学号是学生表的主关键字,开课号是开课表的主关键字。所以选课表中的学号相对学生表就是外关键字,参照完整性约束要求选课表中的学号值必须在学生表的学号中可以找到,否则就只能取空值。同理,选课表中的开课号相对开课表就是外关键字,参照完整性约束要求选课表中的开课号值必须在开课表的开课号中可以找到,否则就只能取空值。

4.检查(CHECK)和缺省值(DEFAULT)约束

该类完整性约束是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。

例如:注册选课表的成绩字段通过这种约束,其值只能在0~100之间,或者是空值,可以把缺省值设为0。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/418074.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

51电动车报警器.md

1.项目接线 接线示意图和实物图 示意图: 实物图: 信号传输路线 路线1: 433遥控信号 ——> 433接收模块D0引脚以及D1引脚 ——> 单片机P1^2引脚以及P1^3引脚 ——> 单片机P1^1引脚 ——> 继电器IN引脚 ——> 继电器COM口和NO口…

安全防御 --- 防火墙高可靠技术

防火墙高可靠技术(双机热备) VRRP:负责的单个接口的故障检测和流量引导。每个VRRP备份组拥有一个虚拟的IP地址,作为网络的网关地址;在VRRP主备倒换时通过发送免费的ARP来刷新对接设备的MAC地址转发表来引导流量。VGMP&…

SSVEP解码算法 - 多变量同步指数(MSI)

1 算法来源 该算法来自电子科技大学张杨松博士,针对该算法的计算在张博士的博士论文中有详细介绍,有兴趣的读者可以下载阅读,本文重点在对该方法的代码实现。Zhang, Yangsong, et al. “Multivariate synchronization index for frequency recognition of SSVEP-based brain…

Mysql 8 VS Mariadb 10.6 他们有多不一样 (声译)

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

获取List集合中的最大值和最小值

实现获取List集合中的最大值和最小值共有以下两种方式,根据自己的场景选择合适的方法。 目录 Collections 1、String、Integer、Double类型 2、对象类型 排序 1、Integer类型 2、 基本排序方式: Collections 1、String、Integer、Double类型 当…

如何使用Edge Copilot

在ChatGPT红得发紫年代,也应该了解下微软microsoft edge浏览器中的Copilot。 通过这个Copilot - 副驾驶,Edge浏览器发生了革命性变化。 借助AI副驾驶强大的功能,在Edge浏览器中可以轻松完成AI聊天、AI写作、AI网页分析,和AI绘图…

【C++要笑着学】搜索二叉树 (SBTree) | K 模型 | KV 模型

C 表情包趣味教程 👉 《C要笑着学》 💭 写在前面:半年没更 C 专栏了,上一次更新还是去年九月份,被朋友催更很久了hhh 本章倒回数据结构专栏去讲解搜索二叉树,主要原因是讲解 map 和 set 的特性需要二叉搜索…

RPC框架一,RMI远程调用实例

RPC框架一,RMI远程调用实例 网上找了好久关于RMI调用的实例,大多都是本地调用的,远程调用的示例很少,所以自己整理一版。 首先 从server端开始: 服务端############### 具体步骤: 1,写个RM…

【从零学Python基础】Python中的条件判断与循环

文章目录条件语句语法格式缩进和代码块空语句pass循环语句while循环for循环continue与break条件语句 条件语句能够表达如果...则...否则...这样的语义,这即是计算机基础中的逻辑判定,条件语句也叫分支语句 如果 我好好学习:   我一定会找到…

wav2lip:Accurately Lip-syncing Videos In The Wild

飞桨AI Studio - 人工智能学习与实训社区集开放数据、开源算法、免费算力三位一体,为开发者提供高效学习和开发环境、高价值高奖金竞赛项目,支撑高校老师轻松实现AI教学,并助力开发者学习交流,加速落地AI业务场景https://aistudio…

CUDA编程基础与Triton模型部署实践

作者:王辉 阿里智能互联工程技术团队 近年来人工智能发展迅速,模型参数量随着模型功能的增长而快速增加,对模型推理的计算性能提出了更高的要求,GPU作为一种可以执行高度并行任务的处理器,非常适用于神经网络的推理计算…

电脑有自带的录屏功能吗?电脑录屏如何录人脸

案例:所有电脑都有自带的录屏功能吗? “在网上了解到电脑有录屏功能,但是我在我的电脑上又找不到。想问问小伙伴们是所有的电脑都有自带的录屏功能吗?怎样才能找到电脑自带的录屏功能?” 在日常使用电脑时&#xff0…

在 Visual Studio 中设置指针星号的位置

作为一个完美主义者,如果写出来的代码,让自己感觉到不那么舒服,你需要好好研究研究,如何解决这个问题。 在写代码的过程中,我碰到了这样的一个小问题。 一直以来,我对指针的星号的位置比较敏感&#xff0…

为什么软件架构重要?

作者:[美]伦巴斯等第2章为什么软件架构重要如果架构是答案,那么问题是什么?本章主要从技术角度讨论为什么架构重要。我们将研究13个重要原因。你可以利用它们来推动新架构的创建,或者对已有系统架构进行分析和优化。1)架构可以抑制…

守正创新 聚力前行 助力量化行业高质量发展 | 峰会资料文末获取

4月1日下午,ACLUB 2023专题峰会在上海陆家嘴圆满举行,近80家业内领先机构逾百人参加会议,其中上海地区优秀量化私募管理人占比七成。 本届峰会主题为“守正创新 聚力前行——助力量化行业高质量发展”。监管机构、券商、行业专家、三方机构、…

耳朵总是听到嗡嗡的声音 这是为什么 该怎么办

为什么会莫名听到嗡嗡的声音,这是什么因素导致的,吃什么药能缓解? 耳鸣,是一种缺乏外部声源情况下,耳内或颅内出现的嗡嗡、嘶鸣、车笛、喇叭等不成形的异常声幻觉。这种情况可能是一种声音,也可能是多种声音…

day25—编程题

文章目录1.第一题1.1题目1.2涉及的相关知识1.3思路1.4解题2.第二题2.1题目2.2思路2.3解题1.第一题 1.1题目 描述: 星际战争开展了100年之后,NowCoder终于破译了外星人的密码!他们的密码是一串整数,通过一张表里的信息映射成最终…

在Node终端实现NewBing对话功能

目录 前言 准备工作 工作原理 功能设计 实现过程 基础概念 代理 请求 socket 控制台输入模块 配置文件 bingServer请求 bingSocket消息 子线程入口部分 主线程部分 工具函数 效果展示 写在最后 前言 ChatGPT在当下已然成为炙手可热的话题了,随着…

MAX14866 16通道高电压模拟开关(不需要高电压供电)

总体介绍 MAX14866 是一个16通道高电压模拟开关,主要用在超声应用的高压多路传输中。 每一个通道的状态可以由一个高速的SPI接口控制,最高时钟为30MHz 详细介绍 MAX14866 是一个单刀单掷开关,以下是等效电路图 MAX14866由一个带有16位串…

什么是Lambda表达式?

什么是Lambda表达式 可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。 匿名:它不像普通的方法那样有一个明确的名称&#xff1…