MySQL第一天——数据库入门

本文介绍了数据库的基本概念,如数据库、DBMS和数据库系统,通过实例展示了数据库在日常生活中的应用,如网上购物、信用卡消费、超市购物等。接着,概述了数据管理技术的发展历程,从人工管理到文件系统再到数据库系统。文章还对比了关系型数据库(如MySQL)和非关系型数据库的特点,并列举了常见数据库系统,如Oracle、SQL Server、MySQL等,以及它们的优缺点。
摘要由CSDN通过智能技术生成

数据库:看作一组相关的数据
数据库管理系统(DBMS):看作管理和控制这组数据的软件
数据库系统:包括与数据库相互作用的应用程序、DBMS 和数据库在内的所有东西

生活中一些常见的数据库应用

网上购物
我们平时使用的购物网站都是通过数据库应用驱动的,例如,淘宝、京东、当当等。

当当中有好多在线书店,它允许客户在不同的种类(例如计算机类或者管理类)中浏览和购买书籍。还可以按作者的姓名来浏览书籍。无论何种情形,该组织的网络服务器中都存在一个数据库,含有所有书籍的详细信息(书名、作者、价格、销售记录、出版社、简介和详细描述等),以及是否有存货、书籍运送情况、库存量和订购等信息。

在数据库中书籍可被交叉引用。例如,一本书可能被列在多个种类下,比如同时列在计算机、程序语言、畅销书和推荐书籍名下。

我们可以在线购买一本或多本书籍。当当网会通过数据库保存先前交易的记录(历史订单),包括购买的书名、送货地址和支付价格等详细信息,为网站的用户提供个性化服务。

信用卡消费
使用信用卡购买商品时,售货员要检查客户是否有足够的信用额度。该项检查可以通过打电话进行,也可以通过一个与计算机系统相连接的信用卡阅读器自动进行。无论哪种方式,一定在某个数据库中存有该客户使用信用卡购买商品的所有信息。

为了检查客户的信用情况,需要有一个数据库应用程序,使用信用卡号码可以查询出这个月客户已购买商品的总价格,加上这次希望用信用卡购买的商品的价格,判断是否仍在信用额度之内。并且,如果用户确认购买,则此次购买商品的详细内容会被记录到该数据库中。

应用程序还要访问数据库,在同意购买之前,检查信用卡不属被盗或丢失之列。此外,一般还有一些其它的应用程序负责每月向信用卡持卡人发送信用卡使用记录,并在收到付款之后向信用卡持卡人发送信息。

超市购物
我们在超市购买商品时,就是在访问一个数据库。

结账时,收银员使用条形码阅读器扫描客户购买的每一件商品。这个条形码阅读器连接着一个访问商品数据库的应用程序,该程序根据条形码从商品数据库中找出商品价格,然后从库存中减去本次销售这种商品的数量,并且在屏幕上显示相应的价格。

如果存货量低于设置的临界值,数据库系统将提示进货以补充存货。如果有客户向超市打电话订购商品,售货员可以通过运行应用程序,查看数据库中此商品是否有足够的存货。

旅行社预订假期行程
当旅客向旅行社咨询假期行程安排时,旅行社将访问多个包含假日和航班详细信息的数据库。

若客户预定行程,数据库系统必须进行所有必要的预定安排。在这种情况下,系统必须确保一个座位不被两个不同的旅行社预定,以及航班的预定座位不超过航班的固定座位。

例如,假设从青海飞往北京的航班上仅剩最后一个座位,却有两个旅行社同时要求预定该座位,系统必须能够分辨和处理这种情况,即允许一个预定继续进行,通知另外一个旅行社已经没有剩余的座位。旅行社通常可能还有另外一个数据库用于开列票据。

图书馆
在图书馆中可能存在一个数据库,用来存储图书馆中所有图书的详细资料和读者的详细信息等。

数据库系统还能提供预定服务,即允许读者预定图书,当该书可以借阅时,用邮件或其它方式通知读者。系统还可以向借书的读者发送提醒信息,告知其在规定的期限内尚未归还所借书。

另外,现在所有的图书馆都配备了计算机索引系统,实现了图书的自动查询。使用该系统,可以让读者通过查询书名、作者或出版年份等信息,查找出希望借阅图书的所在位置,以及是否已经借出等信息。

大学
如果你正在大学就读,学校会有一个用来存储学生所有信息的数据库系统(学生管理系统),包括注册的课程、获得的各类奖学金、往年已选择的课程和今年正在选择的课程以及考试成绩信息等。可能还有一个数据库用来存储在大学中工作员工的详细信息。

购买保险
无论何时,如果想投保某个保险,比如寿险、家庭财产险或汽车保险,保险经纪人都要访问多个保险机构的数据库。

数据库系统会根据所提供的客户个人详细信息,如姓名、家庭住址、年龄等情况,来确定保险的金额。保险经纪人可通过查阅多个数据库,找到一个能给客户最大实惠的保险。

数据管理技术的发展

数据管理就是对各种数据进行分类、组织、编码、查询和维护,主要经历了 3 个阶段,即人工管理阶段、文件系统阶段和数据库系统阶段。

  1. 人工管理阶段
    在计算机出现之前,人们主要利用纸张和计算工具(如算盘和计算尺)来进行数据的记录和计算,依靠大脑来管理和利用数据。

  2. 文件系统阶段
    在 20 世纪 50 年代后期到 20 世纪 60 年代中期,计算机中的磁盘和磁鼓等直接存取设备开始普及。这时,可以将数据存储在计算机的磁盘上。这些数据都以文件的形式存储,然后通过文件系统来管理这些文件。

  3. 数据库系统阶段
    在 20 世纪 60 年代后期,随着网络技术的发展,计算机软/硬件的进步,出现了数据库技术,该阶段就是所谓的数据库系统阶段。

数据库系统阶段使用专门的数据库来管理数据,用户可以在数据库系统中建立数据库,然后在数据库中建立表,最后将数据存储在这些表中。用户可以直接通过数据库管理系统来查询表中的数据。

相对于文件系统来说,数据库系统实现了数据结构化。在文件系统中,独立文件内部的数据一般是有结构的,但文件之间不存在联系,因此整体来说是没有结构的。 数据库系统虽然也常常分成许多单独的数据文件,但是它更注意同一数据库中各数据文件之间的相互联系。

关系型数据库和非关系型数据库

数据库(Database)指长期存储在计算机内的、有组织的、可共享的数据集合。通俗的讲,数据库就是存储数据的地方,就像冰箱是存储食物的地方一样。数据库实际上就是一个文件集合,是一个存储数据的仓库,本质就是一个文件系统,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查操作。
数据库管理系统(DBMS)是数据库系统的核心软件之一,是位于用户与操作系统之间的数据管理软件,用于建立,使用和维护数据库。它的主要功能包括数据定义、数据操作、数据库的运行管理、数据库的建立和维护等几个方面。目前,较为流行的数据库管理系统有 MySQL、SQL Server、Oracle 和 DB2 等。

数据库有两种类型,分别是关系型数据库和非关系型数据库。

关系型数据库
关系型数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。简单说,关系型数据库是由多张能互相连接的表组成的数据库。
优点
1、都是使用表结构,格式一致,易于维护。
2、使用通用的 SQL 语言操作,使用方便,可用于复杂查询。
3、数据存储在磁盘中,安全。
缺点
1、读写性能比较差,不能满足海量数据的高效率读写。
2、不节省空间。因为建立在关系模型上,就要遵循某些规则,比如数据中某字段值即使为空仍要分配空间。
3、固定的表结构,灵活度较低。

常见的关系型数据库有 Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access 和 MySQL 等。

非关系型数据库
非关系型数据库又被称为 NoSQL(Not Only SQL ),意为不仅仅是 SQL。通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定。
优点
1、非关系型数据库存储数据的格式可以是 key-value 形式、文档形式、图片形式等。使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快,效率高。 NoSQL 可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘。
3、海量数据的维护和处理非常轻松。
4、非关系型数据库具有扩展简单、高并发、高稳定性、成本低廉的优势。
5、可以实现数据的分布式处理。
缺点
1、非关系型数据库暂时不提供 SQL 支持,学习和使用成本较高。
2、非关系数据库没有事务处理,没有保证数据的完整性和安全性。适合处理海量数据,但是不一定安全。
3、功能没有关系型数据库完善。

常见的非关系型数据库有 Neo4j、MongoDB、Redis、Memcached、MemcacheDB 和 HBase 等。

数据库系统(Database System,DBS)由硬件和软件共同构成。硬件主要用于存储数据库中的数据,包括计算机、存储设备等。软件部分主要包括数据库管理系统、支持数据库管理系统运行的操作系统,以及支持多种语言进行应用开发的访问技术等。

常用数据库大汇总

1)Oracle

甲骨文公司的一款关系型数据库管理系统,在数据库领域一直处于领先地位的产品,是目前世界上流行的关系型数据库之一,是一种高效率、可靠性好、适应高吞吐量的数据库方案。

优点:
1、可移植性好,能在所有主流平台上运行(包括 Windows),完全支持所有工业标准。采用完全开放策略,使客户可以选择最适合解决方案。以及对开发商的全力支持。
2、获得最高认证级别的 ISO 标准认证,安全性高。
3、与其它数据库相比,Oracle 性能最高。保持着开放平台下 TPC-D 和 TPC-C 世界记录。
4、多层次网络计算,支持多种工业标准,可以用 ODBC、JDBC、OCI 等网络客户连接 。
5、完全向下兼容,因此被广泛应用,且风险低 。
6、向下兼容指的是高版本支持低版本的或者说后期开发的版本支持和兼容早期开发的版本。

缺点:
对硬件的要求高、价格比较昂贵、管理维护麻烦、操作比较复杂

2)SQL Server

是 Microsoft(微软)公司推出的关系型数据库管理系统,主要应用于大型的管理系统中。

优点:
1、与微软的 Windows 系列操作系统的兼容性很好。
2、高性能设计,可充分利用 WindowsNT 的优势。
3、系统管理先进,支持 Windows 图形化管理工具,支持本地和远程的系统管理和配置。
4、强壮的事务处理功能,采用各种方法保证数据的完整性。
5、支持对称多处理器结构、存储过程、ODBC,并具有自主的 SQL 语言。

缺点:
只能在 Windows 系统上运行、没有获得任何安全证书、多用户时性能不佳 、只支持 C/S 模式,SQL Server C/S 结构只支持 Windows 客户用 ADO、DAO、OLEDB、ODBC 连接。

3)MySQL

是一种开放源代码的关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。因为其速度、可靠性和适应性而备受关注。MySQL 是流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL 是最好的应用软件之一。

优点:
1、性能卓越服务稳定,很少出现异常宕机
2、开放源代码且无版权制约,自主性强、使用成本低。
3、历史悠久、社区及用户非常活跃,遇到问题,可以很快获取到帮助。
4、软件体积小,安装使用简单,并且易于维护,安装及维护成本低。
5、支持多种操作系统,提供多种 API 接口,支持多种开发语言。

缺点:
最大的缺点是其安全系统,主要是复杂而非标准,只有调用 mysqladmin 来重读用户权限才会发生改变。
不允许调试存储过程,开发和维护存储过程很难。不支持热备份。价格随平台和安装方式变化。

4)Access

是由 Microsoft(微软)发布的小型关系数据库管理系统,是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。

优点:
1、存储方式简单,易于维护管理。Access 的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb 或 .accdb)的数据库文件中,便于用户的操作和管理。
2、Access 是一个面向对象的开发工具,这种基于面向对象的开发方式,使得开发应用程序更为简便。
3、界面友好、易操作。Access 是一个可视化工具,风格与 Windows 完全一样,用户想要生成对象应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。
4、集成环境,可以处理多种数据信息。Access 基于 Windows 操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。
5、支持广泛,易于扩展,弹性大。Access 是一个既可以只用来存放数据的数据库,也可以作为一个客户端开发工具来进行数据库应用系统开发。即可以开发方便易用的小型软件,也可以用来开发大型的应用系统。

缺点:
1、不支持并发处理。
2、数据库存储量小安全性不够高。
3、Access 是小型数据库,当数据量过大时,一般百M以上(纯数据,不包括窗体、报表等客户端对象)性能会变差。
4、虽然理论上支持 255 个并发用户,但实际上根本支持不了那么多,如果以只读方式访问大概在 100 个用户左右,而如果是并发编辑,则大概在10-20个用户。
5、单表记录数过百万时,性能就会变得较差,如果加上设计不良,这个限度还要降低。
6、不能编译成可执行文件(.exe),必须要安装 Access 运行环境才能使用。

5)DB2

是美国 IBM 公司开发的一款支持多媒体、Web 的关系型数据库管理系统。主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境。

优点:
1、相比较 MySQL 和 Oracle 两种数据库来说,DB2 提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模地应用程序执行能力,具有与平台无关的基本功能和 SQL 命令。
2、DB2 采用了数据分级技术,能够使大型数据很方便的下载到数据库服务器,使数据库本地化和远程连接透明化。
3、拥有非常完备的查询优化器,改善了查询性能,并支持多任务并行查询。
4、具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统更加使用。
5、DB2 可跨平台使用。

缺点:
配置文件和参数多,且命名不规范;命令多,且没 Oracle 统一规范的好; DB2 容易出现锁等待现象。

6)PostgreSQL

是一款富有特色的自由数据库管理系统,甚至可以说是最强大的自由软件数据库管理系统。该数据库管理系统支持了目前世界上最丰富的数据类型。是自由软件数据库管理系统中唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的自由软件。

优点:
1、遵循的是 BSD 协议,是一个完全开源、免费、同时非常强大的关系型数据库。
2、与 PostgreSQL 配合的有很多分布式集群软件,如 pgpool、pgcluster、slony、plploxy 等等,很容易做读写分离、负载均衡、数据水平拆分等方案,而这些 MySQL 则比较难实现。
3、 源代码写的很清晰,易读性比 MySQL 强,所以很多公司基本都是以 PostgreSQL 做二次开发的。
4、 是多进程的,而 MySQL 是多线程的。并发不高时,MySQL处理速度快,但当并发高的时候,对于现在多核的单台机器上,MySQL 的总体处理性能不如 PostgreSQL,原因是 MySQL 的线程无法充分利用 CPU 的能力。
5、有很强大的查询优化器,支持很复杂的查询处理。
6、BSD 开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

缺点:
读取操作性能较低;扩容花费时间很长。

常用专业术语

数据库: 数据库是一些关联表的集合。
数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
外键:外键用于关联两个表。
复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值