第一节 理解关系型数据库

1. 概念  

  数据库,其实是一组结构化信息的集合。数据库设计的目的是用于管理大量的信息。它采取有组织有结构的方式存储数据,从而方便用户管理和检索需要的数据。

  数据库管理系统(DBMS),是允许用户创建和维护数据库的软件程序。DBMS支持在表中以行与列的形式存储数据。

  关系型数据库管理系统(RDBMS),是一种以相关表格形式存储信息的DBMS。RDBMS基于DBMS。

2. 生命周期

  数据库的生命周期从概念上定义了数据库实现的完整过程。

  (1)需求分析:在开始和设计之前必先了解需求。

  (2)逻辑设计:明确需求之后,通过概念化的数据库建模工具定义数据与关系,如E-R图。

  (3)物理设计:物理设计步骤包含 表的创建与索引的选择。

  (4)数据库实现:设计完成以后,通过数据定义语言(DDL)创建。

  (5)数据修改:数据修改语言(DML)用于查询与更新数据库。也可以用于建立索引与约束(参照完整性)。

  (6)数据库监控:对数据库进行操作时,监控器表明数据库是否满足性能需求。如果不满足,就要对数据库进行调整,从而重新进入监控,重新设计和修改阶段。

3. 映射比

  映射比表示某个实体通过关系能够关联的其他实体的数量。

  (1)一对一关系(1:1):比如,每个部门,只能有一位部门领导。

  (2)一对多关系(1:M):比如,多个订单,可以属于一个顾客。

  (3)多对多关系(M:M):通常通过“一多一”格式实现,多对多关系需要第三张表(连接表)作为两张表之间的路径。比如,一个订单包含多个产品,一个产品可以属于多个订单。

4.键的理解

  (1)主键:唯一标识实体中记录的属性或属性组合。

  (2)外键:是关系中用于标识父实体的属性。外键不仅可以保持数据的完整性,而且可用于连接不同实体。模型中的每个关系都必须通过外键的支持。

5.数据完整性的理解

  数据完整性,表示数据库中的数据值的正确性与一致性。

  其中,主键值的存在与唯一性,保证了实体完整性。而引用完整性,需要子表中的所有外键值匹配父表中的主键值,或(如果允许的话)为空,从而满足外键约束。

6.规范化规范化,是在逻辑数据库设计中,把重复数据降至最低的技术,从而避免潜在的更新不一致。

  (1)第一范式(1FN):无重复的列

  (2)第二范式(2FN):属性完全依赖于主键

  (3)第三范式(3FN):属性不依赖于其它非主属性

  概念很抽象,有位园友介绍的不错:http://www.cnblogs.com/GISerYang/archive/2012/05/09/2491996.html

时间: 2024-10-09 18:44:00

第一节 理解关系型数据库的相关文章

深入理解关系型数据库(三)

数据管理器 到这一阶段,查询管理器执行查询并需要从表或索引得到数据.它请求数据管理器来进行获取,但这可能有2个麻烦: > 关系型的数据库使用事务模型,所以你并不能在任意时刻都返回数据因为其他人可能也在使用/修改那部分数据. > 在数据库中做数据的检索是最慢的操作之一,因此数据管理器的足够聪明去适时的将数据保存到内存缓冲区中. 这部分将阐述关系型数据库是怎么解决这两个问题的.数据管理器是如何取数据的相对没那么重要,这里就不做阐述了. 缓存管理器 之前有说过,数据库的最大瓶颈是磁盘I/O,为了提高

深入理解关系型数据库(一)

前言:是否写了很多年的SQL查询,仍然不知道这个大盒子里怎么运作的? 如果你感兴趣,不妨读读本文. 每当说到关系型数据库时,我总感觉少点什么.各式各样的数据库被到处使用,从轻量的SQLite到强大的Teradata.但是,几乎没有一篇文章来解释这些关系型数据库到底是怎样工作的.你使用谷歌搜索“关系型数据库的运行原理”,基本上搜不到什么结果.现在,如果你有接触到比较流行的技术(Big Data, NoSQL或者JavaScript),你却可以找到一些比较深入的介绍它们原理的文章. 难道关系型的数据

第一章 第一节 理解 .Net Core 项目

先打开我们万能的VS2015,选择新建一个.Net Core项目,空项目就好. 建好之后的项目如下: 首先第一个Properties这个文件是关于本项目的一些设置,有有兴趣的同学可以去深入研究一下,本节就不在具体描述. 然后就是wwwroot文件夹,展开之后如下: 是用来存放项目需要用到的一些静态的资源,比如css文件.js文件.图片等等的静态文件,都放在这个文件夹.使用的时候url为http://xxx.com/css/xxx.css,而不是http://xxx.com/wwwwroot/cs

辛星让mysql跑的更快第一节之优化的方向和数据库建模

最近计划写一套书目,也就是关于mysql的优化的,那么首先在博客上写写,然后整理成pdf的文档的形式,当然也期待各位的关注了.对于mysql的优化是一个比较大的话题,可优化的地方也很多,大致想了一下,可以从这些地方下手. 首先就是硬件层次,包括选择合适的操作系统.选择合适的硬件,然后就是源码层次,不过虽然mysql是开源的,但是能够修改其源代码的公司虽然不少,但是也没有那么多,但是我们可以选择更加合适的编译器重新编译其源代码,然后就是设计到表的设计,也就数据库建模. 其次可以考虑使用一些其他技术

第一节 MySQL数据库的连接

第一节       数据库的连接 1.  启动数据库服务 其中MySQL为服务的名称,不同的mySQL安装方式,会有不同的名称.可以通过"计算机"-->右键-->"管理"-->"服务",找到MySQL的服务名称. 2.  关闭数据库服务 3.  登录数据库 方式一: 采用--线进行登录时,host.user.password都必须写全,如果host不写,则默认是本机的. 方式二: 此时为-u,代表简写 注意:--p或-p后不要直

数据库第一节 安装mysql sever5.5与查看数据库创建表

2018.05.03数据库上课第一节 mysql sever5.5安装过程中最后一步出现失败的现象不明原因 第一步 打开后弹框选,选择Next下一步 第二步 弹出下一步对话框后选择接受此协议 第三步 选择第二步,习惯设置选项(custom)后点击下一步(next) 第四步 在出现自定义安装界面中选择mysql数据库的安装路径,这里我设置的是C盘(网图所示是D盘符我的path选项在C盘)单击"next"继续安装,如图所示: 第五步  接下来进入到准备安装的界面,首先确认一下先前的设置,如

Python3网络爬虫实战-32、数据存储:关系型数据库存储:MySQL

关系型数据库基于关系模型的数据库,而关系模型是通过二维表来保存的,所以它的存储方式就是行列组成的表,每一列是一个字段,每一行是一条记录.表可以看作是某个实体的集合,而实体之间存在联系,这就需要表与表之间的关联关系来体现,如主键外键的关联关系,多个表组成一个数据库,也就是关系型数据库. 关系型数据库有多种,如 SQLite.MySQL.Oracle.SQL Server.DB2等等. 在本节我们主要介绍 Python3 下 MySQL 的存储. 在 Python2 中,连接 MySQL 的库大多是

图数据库与关系型数据库的区别与联系

最近我在用图形数据库来完成对一个初创项目的支持.在使用过程中觉得这种图形数据库实际上挺有意思的.因此在这里给大家做一个简单的介绍. NoSQL数据库相信大家都听说过.它们常常可以用来处理传统的关系型数据库所难以解决的一系列问题.通常情况下,这些NoSQL数据库分为Graph,Document,Column Family以及Key-Value Store等四种.这四种类型的数据库分别使用了不同的数据结构来记录数据.因此它们所适用的场景也不尽相同. 其中最为特别的便是图形数据库了.可以说,它和其它的

关系型数据库和非关系型数据库之间的那些区别(一)

说说关系型数据库和非关系型数据库之间的那些区别 第一弹 就拿现在最流行的两种数据库来说吧:mysql和mongodb(介于关系型和非关系型之间的一种产品,在这里面我们就当做非关系型数据库用来和mysql比较一下) 举个实际好理解的的例子:学生选课的系统(简化来说举出系统里面的两个:学生,课程) 首先说在mysql里面建立的模型是 学生表(student): S Sid name gender age address email college class 1 张三 女 19 a 111 外语 1