认识数据库
术语解释
- 信息:它泛指人类社会传播的一切内容。
- 数据:数据不等于信息,数据是对客观事物进行记录并可以鉴别的符号,在计算机系统中,数据以二进制信息单元0、1的形式表示。数据是数据库中存储的基本对象,除了最基本的除了最基本的数据形式—数字外,还有文字、图片、视频、声音等形式。
- 大数据:大数据是一个体量特别大、数据类别特别大的数据集,并且这样的数据集无法用传统数据库工具对其内容进行提取、管理和处理。大数据具有数据体量巨大、数据类型多样、处理速度快、价值密度低的特点。大数据是数据由量变到质变产生的一个概念,并发展出一整套大数据相关技术。
什么是数据库
- 数据库简而言之就是存放数据的仓库,是为了实现一定目的,按照某种规则组织起来的数据集合。当然数据有多种形式,如文字、数码、符号、图形、声音等。从广义的角度定义,计算机中任何可以保存数据的文件或者系统都可以称之为数据库。在IT专业领域中,数据库一般指的是由专业技术团队开发的用于存储数据的软件系统。专业的数据库需要具有较小的数据冗余度,较高的数据安全性和易扩展性。
使用数据库的必要性
- 使用数据库可以高效且条理分明地存储数据,它使人们能够更加迅速和方便地管理数据,主要体现在以下几个方面。
- 可以结构化存储大量的数据信息,方便用户进行有效地检索和访问。数据库可以对数据进行分类保存,并且能够提供快速的查询。
- 可以有效地保持数据信息地一致性、完整性,降低数据冗余。保存在数据库中的数据,可以很好地保证数据地有效性和不被破坏,而且数据库自身有避免数据重复的功能,以此来降低数据的冗余。
- 可以满足应用的共享和安全方面的要求。把数据放在数据库中很多情况下也是出于安全的考虑。
常见数据库
关系型数据库 |
---|
MySQL |
Oracl |
SQL Server |
非关系型数据库 | |
---|---|
MogoDB...... | 文档存储数据库 |
Redis、Memcached...... | 键值存储数据库 |
HBase...... | 列存储数据库 |
Neo4J...... | 图形数据库 |
- 相对于其他数据库产品而言,MySQL的主要优势如下
- 运行速度快。MySQL体积小,命令执行的速度块。
- 使用成本低。MySQL是开源的,且提供免费版本,对大多数用户来说大大降低了使用成本。
- 容易使用。于其他大型数据库的设置和管理相比,其复杂程度较低,易于使用。
- 可移植性。MySQL能够运行于多种系统平台上,如Windows、Linux、UNIX等。
- 适用于更多用户。MySQL支持最常用的数据管理功能,适用于中小型企业甚至大型网站应用。
实体和数据库表
- 在数据库概念中,实体指的是所有客观存在的、可以被描述的事物。
- 数据库中存储的表格中,每一“行”实际上对应一个实体,在数据库中,通常通常叫作一条“记录”。表格中的每一“列”,如编号、姓名、年龄、民族等,在数据库中通常称之为“字段”。
- 我们把相同类型的记录组织在一起的数据结构称为数据库“表”,表是实体的集合,用来存储具体的数据。简单地说,表是记录的集合,而数据库是表的集合。但是,通常数据库并不是简单地存储这些实体的数据,它还要表达实体之间的关系。“关系”的描述也是数据库的一部分。逻辑上,数据库包括数据表、关系表及其他各种数据库对象。在早期数据库技术并不发达的时候,“实体”之间的“关系”常用关系表达式来实现。在数据库技术相当发达的今天,很多“关系”被高度抽象,成为较统一的概念,通过键、类型、规则、权限、约束等抽象概念来实现。随着数据库的发展和需求的增加,还产生了许多其他辅助的操作对象,如存储过程、视图、操作数据行的游标等,这些操作对象也逐渐成为数据库的一部分。
数据库管理系统数据库系统
- 数据库管理系统是一种系统软件,由一个相互关联的数据集合和一组访问数据的程序构成。数据库管理系统就是管理数据库的系统,数据库管理系统包括数据库以及用于访问管理数据库的接口系统。通常我们也会把数据库管理系统直接称为数据库。如严格意义上说MySQL属于数据库管理系统,但是通常也称MySQL为MySQL数据库。数据库管理系统的基本目标是提供一个可以方便有效地存取数据库信息地环境。
- 数据库管理系统地主要功能是维护数据库,并有效地访问数据库中各个部分的数据。
- 数据库系统是一个实际可运行的系统,就可以对系统提供的数据进行存储、维护和应用,它是由存储介质、处理对象和管理系统共同组成的集合体,通常由软件、数据库以及数据库管理员组成。数据库管理员是指在数据库系统中负责创建、监控和维护整个数据库的专业管理人员。
数据冗余和数据完整性
- 在数据库系统中,数据重复的现象就是数据冗余。
- 数据的完整性是指数据中数据的准确性。如果两个或更多的表由于其存储的信息而相互关联,那么只要修改其中一个表,与之相关的所有表都要做出相应的修改,如果不这么做,存储的数据就会不再准确,也就是说,失去了数据的完整性。一种不能正确反映实际情况的数据不具备完整性。
主键和外键
- 为了解决数据冗余和数据完整性,随着数据库技术的发展提出主键和外键的概念。
-
主键
如果在表中存储了很多行数据,就会引发这样的问题:如何判断表中没有重复的数据行?如何判断一个学生的信息没有被输入两次?这就需要有一个列,这个列的值用来唯一标识表中的每一行,用于强制表的实体完整性,这样的列定义为表的主键
-
一个表中只能有一个主键,而且主键列不允许出现空值,尽管有的表中允许没有主键,但是通常情况下建议为表设置一列作为主键。
注意:如果两列或多列组合起来唯一地标识表中的每一行,则该主键叫做“复合主键”
- 选择那个列作为主键的时候u需要考虑的原则:
- 最少性。最少性是指列数最少的键。如果可以从单个主键和复合主键中选择,应该选择单个主键,这是因为操作一列比操作多列要快。当然该规则也有例外,例如,两个整数类型的列的组合比一个很大的字符类型的列操作要快。
- 稳定性。稳定性是指列中数据的特征。由于主键通常用来在两个表之间建立联系,所以主键的数据不能经常更新。理想情况下,应该永远不变。
- 选择那个列作为主键的时候u需要考虑的原则:
-
外键
- 在数据库设计中,学生的信息和学生的考试成绩是存放在不同的数据表中的。在成绩表中,可以存储学生的学号来表示是哪个学生的考试成绩,这又引发了一个问题如果成绩表中输入的学号根本不存在(如把输入的学号写错了),该怎么办?这时候,就应当建立一种“引用”关系,确保“从表”中的某个数据项在“主表”中必须存在,以避免上述错误发生。“外键”就是用来达到这个目的的,就是“从表中”对应于“主表”的列,在从表中称为外键或者引用键,它的值要求与主表的主键或者唯一键相对应,外键用来强制引用完整性。一个表可以有多个外键