mysql基本概念

来源:互联网 发布:谷边由美 程序员 编辑:程序博客网 时间:2024/06/05 19:08

什么是数据库

数据库是长期储存在计算机内有组织,可共享的数据集合,它采用数据结构来组织、管理、储存数据,具有读写速度快、对数据操作简单、、容易理解、便于维护等特点。

数据库分类

  • 关系型数据库
    关系型数据库是应用数学方法,建立在关系模型上的数据库。
    当前主流的有:

    -Oracle:商业数据库代表,价格贵,非开源主要用于商业大公司 ,如银行,保险,证券等和钱有关的商业公司;

    • DB2:是IBM公司产品,兼容 IBM 个中大型机、中型机、小型机,听说比 Oracle 能便宜一点;
    • MySQL:开源数据库(主要是免费的),为互联网公司,小型公司使用较多,没有商业数据库稳定;
    • SQL Server:微软产品,需要 windows 操作系统,需要钱;
    • SQLite:移动端程序多使用这个,免费开源。
  • 非关系型数据库
    相对于关系型数据库来说,比较简单,针对特定应用需求出现,所以对特定需求需要有极高的性能。

    • Redix:高性能 key-value 数据库
    • Memcached:基于 hashmap 的对象缓存系统,用于web应用以减轻数据库负载
    • MongoDB:基于关系型数据库和非关系型数据库之间的产品,支持类 json 的松散的数据结构。

关系型数据库

关采用关系模型来组织数据,关系模型最早是在1970年,由IBM的研究员E.F.Codd博士发表《大型共享数据银行的关系模型》一文提出的,关系模型可以简单理解为数据与数据之间的关系。在用户看来,这种关系模型类似一张二维表。
以下表为例:
这里写图片描述

关系模型中的一些概念:

  • 元组:二位表中的一行,也叫做记录,比如具体某个学生的信息 (201515121,李勇,男,20,CS ) 就是一个元组;
  • 属性:二维表中的一列,也叫做字段,比如学号那一列就是一个属性;
  • :相同数据类型的集合,可以理解为某个属性的范围,比如性别只有两种(男、女),年龄(≥0)
  • 关系:一组域的笛卡尔积,实际上就是一张表,如上面的学生信息表,关系名也叫作表名,比如上表的关系名(表名)是“Student”;
  • 关键字:可以唯一标识元组的属性,也叫作主属性,表如上表的学号;

关系完整性的约束

数据库中的数据是会随着时间变化的,所以就需要一些约束条件对这些数据进行约束,以保持数据关系之间的完整性。关系模型中有三种完整性约束:实体完整性参照完整性用户自定义完整性

  • 实体完整性
    主属性不能取空值(不存在、不知道、无意义的值),比如上述学生信息表中的每个学生都应该对应一个主属性(学号),而且不能取空值。

  • 参照完整性
    当一个表中的主属性是另一个表中的外码,则它必须取另一个表中存在的值或者空。比如上述学生课程表(SC)中的学号要么为空(即没有那一个元组),要么取学生表中存在的学号。

  • 用户自定义完整性
    对于某些关系的某些非主属性,我们在不同应用环境中需要一些特殊的约束条件。比如上述学生表中姓名一栏不能取空值,这是在创建表结构时由用户自定义的,被称为用户自定义完整性。

关系完整性方便了用户对数据的操作,比如插入一个已经存在的学号信息时,数据库管理系统会报错提示用户,但在早期的数据库管理系统中,这些检查操作需要由用户编写程序来判断。

——完!


【作者:果冻 http://blog.csdn.net/jelly_9?ref=toolbar】

原创粉丝点击