数据库介绍

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的API用于创建、访问、管理、搜索和复制所保存的数据。每个数据库都有一个或多个不同的API用于创建、访问、管理、搜索和复制所保存的数据。我们可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大的数据量。所谓关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

RDBMS即关系数据库管理系统(Relational Database Management System)的特点:

1、数据以表格的形式出现。

2、每行为各种记录名称。

3、每列为记录名称所对应的数据域。

4、许多行和列组成一张表单。

5、若干的表单组成database。

RDBMS常用术语

数据库:数据库是长期存储在计算机内、有组织的、可共享的数据集合,具有较小的冗余度,较高的数据独立性和易扩展性。

行:在SQL中把传统的关系模型中的元组称为行(row)。

列:在SQL中把传统的关系模型中的属性称为列(coloumn)。

基本表:在SQL中把传统的关系模型中的关系模式称为基本表(bsetble),基本表示本身独立的表,一个关系就对应一个基本表。

实表:基本表就被称为实表,它是实际存放在数据库中表。

虚表:视图就被称为虚表,因为在数据库中只存储视图的定义而不存放视图所对应的数据。

冗余:指数据之间的重复,也可以说是同一数据存储在不同数据文件中的现象。

记录:一个记录就是数据表中的一行,一个数据表中的每一个记录均有一个唯一的编号(记录号)。

元组:在关系中记录称为元组。

超键:在关系中能唯一标识元组的属性集称为关系模式的超键。注意,超键是一个属性集。

候选键:不含有多余属性的超键称为候选键。

主键:用户选作元组标识的一个候选键为主键。

外键:某个关系的主键相应的属性在另一关系中出现,此时该主键就是另一关系的外键。

复合键:将多个字段作为一个主键。

索引:对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。

实体完整性规则:这条规则要求关系中元组在组成主键的属性上不能有空值。如果出现空值,那么主键值就起不了唯一标识元组的作用。

参照完整性规则:这条规则要求不引用不存在的实体。

1NF:第一范式。如果关系模式R的所有属性的值域中每一个值都是不可再分解的值,则称R是属于第一范式模式。如果某个数据库模式都是第一范式,则称该数据库存模式属于第一范式的数据库模式。第一范式的模式要求属性值不可再分裂成更小部分,即属性项不能是属性组合和组属性组成。

2NF:第二范式。如果关系模式R为第一范式,且R中每一个非主属性完全函数依赖于R的某个候选键,则称是第二范式;如果某个数据库模式中每个关系模式都是第二范式,则称该数据库模式属于第二范式的数据库模式。

3NF:第三范式。如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键,则称R是第三范式的模式。如果某个数据库模式中的每个关系模式都是第三范式,则称为3NF的数据库模式。

BCNF:BC范式。如果关系模式R是第一范式,且每个属性都不会传递依赖于R的候选键,那么称为R是BCNF的模式。

4NF:第四范式。设R是一个关系模式,D是R上的多值依赖集合。如果D中成立非平凡多值依赖X、Y时,X必是R的超键,那么称R是第四范式的模式。

Mysql数据库

Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System关系数据库管理系统)应用软件之一。由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关系数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL数据库主要特点:

1、使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。

2、支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。

3、为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。

4、支持多线程,充分利用CPU资源。

5、优化的SQL查询算法,有效地提高查询速度。

6、既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。

7、提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列明。

8、提供TCP/IP、ODBC和JDBC等多种数据库连接途径。

9、提供用于管理、检查、优化数据库操作的管理工具。

10、支持大型的数据库。可以处理拥有上千万条记录的大型数据库。

11、支持多种存储引擎。

12、Mysql是开源的,所以你不需要支付额外的费用。

13、Mysql使用标准的SQL数据语言形式。

14、Mysql对PHP有很好的支持,PHP的目前主流的web开发语言。

15、Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。

Mysql数据的安装使用

http://www.cnblogs.com/yinshoucheng-golden/p/6441975.html

Python开发【第十一篇】:MySQL的更多相关文章

  1. Python开发【第一篇】:目录

    本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! Python开发[第一篇]:目录 Python开发[第二篇]:初识Python ...

  2. Python开发【第二篇】:初识Python

    Python开发[第二篇]:初识Python   Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏 ...

  3. 【python自动化第十一篇】

    [python自动化第十一篇:] 课程简介 gevent协程 select/poll/epoll/异步IO/事件驱动 RabbitMQ队列 上节课回顾 进程: 进程的诞生时为了处理多任务,资源的隔离, ...

  4. Python系列之入门篇——MYSQL

    Python系列之入门篇--MYSQL 简介 python提供了两种mysql api, 一是MySQL-python(不支持python3),二是PyMYSQL(支持python2和python3) ...

  5. Python开发【第一篇】:目录

    本系列博文包含Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习Python编程的朋友们提供一点帮助! .Python开发[第一篇]:目录 .Python开发[第二篇]:初始P ...

  6. Python开发【第一篇】基础题目二

    1 列表题 l1 = [11, 22, 33] l2 = [22, 33, 44] # a. 获取l1 中有,l2中没有的元素 for i in l1: if i not in l2: # b. 获取 ...

  7. python自动化开发-[第十一天]-Mysql

    今日概要: 1.初识mysql 2.MySQL的增删改查 3.主键.外键 4.组合和分组 一.数据库的由来 1.什么是数据库? 数据的仓库,在ATM,购物车中存储数据为目录,称为数据库 1.数据以表格 ...

  8. Python开发【第一篇】:初识Python

    初识python 一.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...

  9. Python开发第五篇

    面向对象程序设计 面向过程编程:就是分析问题的解决步骤,按部就班的编写代码解决问题 函数式编程:就是把代码封装到函数中,然后在使用时调用封装好的函数 面向对象编程:把一类事物所共有的属性和行为提取出来 ...

  10. 跟着老男孩教育学Python开发【第一篇】:初识Python

    Python简介 Python前世今生 Python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...

随机推荐

  1. SQL对于 小数处理的小结

    DECLARE @digital INT --截断小数位 ,,)),@digital) AS 截断小数位 --上抛小数位 ,,)),@digital) AS 上抛小数位 SELECT CEILING ...

  2. 《深度探索C++对象模型》读书笔记(二)

    第三章:Data语意学 这一章主要讲了类中的数据在内存中是如何分配的,包括(多重)继承和多态. 让我们首先从一段代码开始: class X{}; class Y :virtual public X{} ...

  3. Layout-1相关代码

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  4. RN-进阶

    ActivityIndicator 显示一个圆形的loading的提示符 react-native-tab-navigator npm install react-native-tab-navigat ...

  5. JavaScript数组方法--pop、shift、unshift

    其实还有一个方法push,应该放在一起说的,问题是他跟concat跑了,那只剩下这哥仨了. pop:pop()方法从数组中删除最后一个元素,并返回该元素的值.此方法更改数组的长度.捎带一下push,p ...

  6. spring boot 接口返回值去掉为null的字段

    现在项目都是前后端分离的,返回的数据都是使用json,但有些接口的返回值存在 null或者"",这种字段不仅影响理解,还浪费带宽,需要统一做一下处理,不返回空字段,或者把NULL转 ...

  7. windows环境下安装rabbitmq及配置可视化管理界面

    1.环境 windows7 64位 rabbitmq3.7.9 erlang10.22.先安装erlang,后安装rabbitmq.下载地址: rabbitmq http://www.rabbitmq ...

  8. Django上传文件和上传图片(不刷新页面)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. List 去重

    private static List removeDuplicate(List list) { HashSet h = new HashSet(list); list.clear(); list.a ...

  10. Java学习--数组--判断数组中是否包含某个元素的方法

    package zaLearnpackage; import org.apache.commons.lang3.ArrayUtils; import java.util.Arrays; import ...