关系型数据库

1、关系型数据库

关系型数据库:是一种建立在关系模型(数学模型)上的数据库。

关系模型:一种所谓建立在关系上的模型。关系模型包含三个方面:

数据:数据存储的问题,二维表(有行和列)

操作指令集合:所有SQL语句

完整性约束:表内数据约束(字段与字段),表与表之间约束(外键)

2、关系型数据库的设计

关系型数据库:从需要存储的数据需求中分析,如果是一类数据(实体)应该设计成一张二维表;表是由表头(字段名:用来规定数据的名字)和数据部分组成(实际存储的数据单元)

二维表:行和列

表头字段名1字段名2
数据单元数据1数据线

以实际的案例来进行分析:分析一个教学系统,讲师负责教学,教学生,在教室里面教学生

①找出系统中所存在的实体:讲师表,学生表,班级表

②找出实体中应该存在的数据信息

讲师:姓名,性别,年龄,工资……

学生:姓名,性别,学号,学科……

班绩:班级名字,教室编号……

关系型数据库:维护实体内部,实体与实体之间的联系

实体内部联系:每个学生都有姓名,性别,学科信息

姓名性别学号学科年龄
陈滔030310303化学工程22
杜洪030320305化工原理 
付威 030330303物理化学 

第二行的所有字段,都是在描述陈明这个学生(内部联系);第二列只能放性别(内部约束)——实体内部的联系

关系型数据库的特点之一:如果有表中对应的某一个字段没有值(数据),但是系统依然要分配空间:关系型数据库比较浪费空间

实体与实体之间的联系:每个学生肯定属于某个班级,每个班级一定有多个学生(一对多)

第二行的所有字段,都是在描述陈明这个学生(内部联系);第二列只能放性别(内部约束)——实体内部的联系

关系型数据库的特点之一:如果有表中对应的某一个字段没有值(数据),但是系统依然要分配空间:关系型数据库比较浪费空间

实体与实体之间的联系:每个学生肯定属于某个班级,每个班级一定有多个学生(一对多)

姓名性别学号学科年龄
陈滔030310303化学工程22
杜洪030320305化工原理 
付威 030330303物理化学 

班级表

班级名称教室编号
化工原理B203
物理化学A305

问题:从上述两个表中能否确定哪个学生属于哪个班级或者哪个班级有哪些学生?

解决方案:在学生表中增加一个班级字段来指向班级(必须能够唯一的找到一个班级信息)

姓名性别学号学科年龄班级信息
陈滔030310303化学工程22化工原理
杜洪030320305化工原理 物理化学
付威 030330303物理化学 物理化学

学生实体与班级实体的关联关系——实体与实体之间的关系

转载于:https://www.cnblogs.com/Fucx/p/5231352.html

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

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

相关文章

python中lines是什么类型_Python中splitlines()方法的使用简介

splitlines()方法返回一个字符串的所有行,可选包括换行符列表(如果num提供,则为true) 语法 以下是splitlines()方法的语法: str.splitlines( numstring.count(\n)) 参数 num -- 这是任何数,如果存在它会被认为换行需要被包括行数。…

关于Unity中的本地存储

本地存储 在做游戏的时候,经常需要在本机存储一些数据,比如闯关类游戏要记录闯到第几关,做单机的时候要把数据保存到本地,下次启动的时候数据存在,就是把数据保存到磁盘里面或者手机的flash闪存里面。 Unity使用Player…

linux之history和!命令联合使用

1 问题 linux平台查找过去的使用的命令 2 解决方法 1)history和! id联合使用 输入histroy命令,部分 显示如下 2008 echo 11 > 1.txt 2009 histroy 然后!id !2008 echo 11 > 1.txt 如果!(命令的一部分&am…

sql 注入神器sqlmap 源码分析之调试sqlmap

为什么80%的码农都做不了架构师?>>> 相信大家平时 用sqlmap 命令,比如 python sqlmap.py -u"https://team.oschina.net/action/team/create" --data"nameonlyGuest&identonlyGuest&sidentonlyGuest&temp1431349…

【鉴权/授权】自定义一个身份认证Handler

微信公众号:趣编程ACE关注可了解.NET日常开发技巧。如需源码,请公众号留言 [源码];上文回顾【鉴权/授权】一步一步实现一个简易JWT鉴权自定义身份验证CustomerAuthenticationHandler使用上篇文章我演示了如何利用.net core 里面内置的验证方案-Bearer 进…

java把对象转成json_java 把对象 对象转换成json字符串 | 学步园

publicclassJSONCreateDemoActivity {//创建以下的JSON对象publicString createJSONObject() {Gsongson newGson();Configurationcon1 newConfiguration();con1.setDisplay(true);con1.setFillColor("#FF0000");con1.setID(1);con1.setLineColor("#FF0000&quo…

【C语言简单说】六:取模运算符以及变量的扩展

┴┴ (╰(`□′)╯( ┴┴ … 这一节我们就来说另外的运算符——取模运算符(说白了跟取余数差不多…<—_-)!!!) 先看看好难懂的定义:取模运算和取余运算两个…

Android Studio开发基础之Activity之间参数传递

一、简单数值传递 1、MainActivity protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {@Overridepublic void o…

ExtJs5.0在WebStorm上的使用之入门教程(一)编写第一个网页 HelloExt

首先&#xff0c;必须声明一下笔者使用的软件版本&#xff1a; 前端开发工具&#xff1a;WebStorm 11.0.3 辅助插件&#xff1a;ext-5.0.0-gpl 以上工具包括下面的代码我已经打包上传在此处了&#xff1a;点击打开链接 先上代码&#xff0c;再废话&#xff1a;<!DOCTYPE htm…

python赋值语句的一般格式为_[零基础学Python]赋值,简单也不简单

变量命名在《初识永远强大的函数》一文中&#xff0c;有一节专门讨论“取名字的学问”&#xff0c;就是有关变量名称的问题&#xff0c;本温故而知新的原则&#xff0c;这里要复习&#xff1a;名称格式&#xff1a;(下划线或者字母)(任意数目的字母&#xff0c;数字或下划线)注…

linux之下载文件或测试网络常用命令(curl和wget)

1 问题 在自己的设备上测试网络 2 解决办法 1)使用wget命令(主要用来下载文件或测试网络) 一般用使用 wget www.baidu.com 效果如下: wget www.baidu.com --2018-12-04 23:48:23-- http://www.baidu.com/ Resolving www.baidu.com (www.baidu.com)... 14.215.177.38, 14…

腾讯视频涨价:一年多赚74亿!关注我领取腾讯VIP会员,周卡低至7元

不久前&#xff0c;腾讯视频的用户又一次“喜迎会员价格上涨”&#xff0c;甚至让腾讯视频因此登上了微博热搜。但要知道的是&#xff0c;此前在去年4月的时候&#xff0c;腾讯视频就已经涨过一次价了。4月9日&#xff0c;腾讯视频方面发布通知称&#xff0c;将于4月20日零点调…

RAID 01 和RAID 10的区别

之前没搞明白&#xff0c;今天看了篇文章&#xff0c;终于清楚了。RAID 01 就是先做RAID 0磁盘组&#xff0c;再2组RAID 0做成RAID 1。这种情况下&#xff0c;RAID 1 的其中一个镜像 RAID 0中,有一块盘坏掉,RAID 1 的其中一个镜像就全坏了。RAID 10,就是先做1&#xff0c;再2组…

使用JUnitParams简化Parameterized tests

为什么80%的码农都做不了架构师&#xff1f;>>> 序 junit4的Parameterized tests的使用方法太过费劲了&#xff0c;这里介绍下如何使用JUnitParams来简化Parameterized tests。 junit4原生的Parameterized tests实例 RunWith(Parameterized.class) public class Fi…

无约束优化问题求解(4):牛顿法后续

目录 前言SR1, DFP, BFGS之间的关系 BB方法Reference 前言 Emm&#xff0c;由于上一篇笔记的字数超过了要求&#xff08;这还是第一次- -&#xff09;&#xff0c;就把后续内容放到这篇笔记里面了&#xff0c;公式的标号仍然不变&#xff0c;上一篇笔记的连接在这&#xff1a;…

【C语言简单说】七:自定义函数(1)

在最开始的说过&#xff0c;函数可以比喻工具箱&#xff0c;那么我们现在开始自己开始制作函数了&#xff0c;自己制作函数是很简单的&#xff0c;如下代码&#xff1a; #include<stdio.h> #include<stdlib.h> //头文件下面 void dy(){printf("这里是dy函数\…

哈夫曼编码算法 java_我所知道的算法之哈夫曼编码

上一篇文章中提到数据结构&#xff1a;哈夫曼树&#xff0c;今天接着学习由哈夫曼提出编码方式&#xff0c;一种程序算法。简称&#xff1a;哈夫曼编码一、什么是哈夫曼编码&#xff1f;与哈夫曼树一样&#xff0c;会不会有小伙伴对哈夫曼编码很陌生&#xff0c;有疑惑问题疑惑…

Windows之Wireshake之抓HTTP请求包(过滤目的IP)

1 问题 用Wireshake抓取HTTP请求包 2 解决办法 直接在在WireShare里面过滤条件输入http 然后在浏览器输入http的请求,我的效果如下 看吧,都是http请求 如果数据太多,我只需要过滤一个目的的ip,我们可以这样设置参数 ip.addr == 目的ip && http 如下图 然后我输…

html使用element ui_Kendo UI for jQuery使用教程:自定义小部件(二)

Kendo UI目前最新提供KendoUI for jQuery、KendoUI for Angular、KendoUI Support for React和KendoUI Support for Vue四个控件。Kendo UI for jQuery是创建现代Web应用程序的完整UI库。Kendo UI通过继承基本窗口小部件类为您提供创建自定义窗口小部件的选项。处理事件1. 将更…

ASP.NET MVC 个人学习笔记之 Controller传值

2019独角兽企业重金招聘Python工程师标准>>> //ControllerViewBag.Message "Modify this template to jump-start your ASP.NET MVC application."; // View<section class"featured"><div class"content-wrapper"><…