数据库入门

        在日常生活中,随处可见数据库系统的应用。通俗的讲,可以先将:

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

目录

一、常见的数据库

二、数据管理三个阶段

三、数据库

关系型数据库

非关系型数据库

四、使用数据库的优势

五、数据库系统 

六、常见数据库访问接口


一、常见的数据库

生活中常见的数据库有:

        超市购物:结账时,收银员使用条形码阅读器扫描客户购买的每一件商品。这个条形码阅读器连接着一个访问商品数据库的应用程序,我们可以商品数据库中找出商品价格,然后从库存中减去本次销售这种商品的数量,并且在屏幕上显示相应的价格。如果存货量低于设置的临界值,数据库系统将提示进货以补充存货。如果有客户向超市打电话订购商品,售货员可以通过运行应用程序,查看数据库中此商品是否有足够的存货。

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

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

        除此之外,还有公司、信用卡消费、网上购物、学校图书馆、出行车票购买等都是生活中常见的数据库。

二、数据管理三个阶段

        数据库管理系统(DBMS)是数据库的核心软件之一,是位于用户与操作系统之间的数据管理软件,用于建立,使用和维护数据库。

        数据管理就是对各种数据进行分类、组织、编码、查询和维护,主要经历了 3 个阶段,即人工管理阶段、文件系统阶段和数据库系统阶段。每一个阶段都是以减小数据冗余、增强数据独立性和方便操作数据为目的进行发展。

数据管理的3个阶段

人工管理(20 世纪 50 年代中期)

文件系统(50 年代末至 60 年代中期)数据库系统(60 年代后期)
应用背景科学计算科学计算、管理大规模数据、分布数据的管理
硬件背景无直接存取存储设备磁带、磁盘、磁鼓大容量磁盘、可擦写光盘、按需增容磁带机等
软件背景无专门管理的软件利用操作系统的文件系统由 DBMS 支撑
数据处理方式批处理联机实时处理、批处理联机实时处理、批处理、分布处理
数据的管理者用户/程序管理文件系统代理DBMS 管理
数据应用及其扩充面向某一应用程序难以扩充面向某一应用系统、不易扩充面向多种应用系统、容易扩充
数据的共享性无共享、冗余度极大共享性差、冗余度大共享性好、冗余度小
数据的独立性数据的独立性差物理独立性好、逻辑独立性差具有高度的物理独立性、具有较好的逻辑独立性
数据的结构化数据无结构记录内有结构、整体无结构统一数据模型、整体结构化
数据的安全性应用程序保护文件系统保护由 DBMS 提供完善的安全保护

三、数据库

        描述事物的符号称为数据。数据有多种表现形式,数字,文字、图形、图像、声音、语言等。例如,在学生管理数据库中,记录学生的信息包括学号、姓名、性别、年龄、籍贯和联系电话等,这些信息就是数据。
        信息是指对数据进行加工处理后提取的对人类社会实践和生产活动产生决策影响的数据。信息就是数据中所包含的意义。未经过加工的数据只是一种原始材料,它的价值在于记录了客观世界的事实。例如“2016010102,张三,男”,了解其含义的人会得到这样的信息:张三的学号是 2016010102,而不了解其语义的人则无法理解其含义。所以,数据和信息是不可分的。
        数据库(Database)指长期存储在计算机内的、有组织的、可共享的数据集合。通俗的讲,数据库就是存储数据的地方,就像冰箱是存储食物的地方一样。在生活中,每个人都在使用数据库。当我们在电话簿里查找名字时,就是在使用数据库。在某个浏览器上进行搜索时,也是在使用数据库。
        数据库实际上就是一个文件集合,是一个存储数据的仓库,本质就是一个文件系统,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查操作。
        数据库管理系统(DBMS)是数据库系统的核心软件之一,是位于用户与操作系统之间的数据管理软件,用于建立,使用和维护数据库。它的主要功能包括数据定义、数据操作、数据库的运行管理、数据库的建立和维护等几个方面。
数据库有两种类型,分别是关系型数据库和非关系型数据库。

关系型数据库

        关系型数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。简单说,关系型数据库是由多张能互相连接的表组成的数据库。

优点

  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、MongoDBRedis、Memcached、MemcacheDB 和 HBase 等。

四、使用数据库的优势

        使用数据库可以高效且条理分明地存储数据,它使人们能够更加迅速和方便地管理数据,主要体现在以下几个方面。

  1. 数据库可以结构化存储大量的数据信息,方便用户进行有效的检索和访问。数据库可以对数据进行分类保存,并且能够提供快速的查询。例如,我们平时使用百度搜索内容时,百度也是基于数据库和数据分类技术来达到快速搜索的目的。
  2. 数据库可以有效地保持数据信息的一致性、完整性、降低数据冗余。
  3. 数据库可以满足应用的共享和安全方面的要求,把数据放在数据库中在很多情况下也是出于安全的考虑。例如,如果把所有员工信息和工资数据都放在磁盘文件上,则工资的保密性就无从谈起。如果把员工信息和工资数据放在数据库中,就可以只允许查询和修改员工信息,而工资信息只允许指定人(如财务人员)查看,从而保证数据的安全性。
  4. 数据库技术能够方便智能化地分析,产生新的有用信息。例如,超市中把物品销售信息保存在数据库中,每个月销售情况的排名决定了下半月的进货数量。数据库查询的结果实际上产生了新的数据信息。

五、数据库系统 

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


        一个完整的数据库系统一般由数据库、数据库管理系统、应用开发工具、应用系统、数据库管理员和用户组成。
数据库系统主要有以下 3 个组成部分:

  1. 数据库:用于存储数据的地方。
  2. 数据库管理系统:用于管理数据库的软件。
  3. 数据库应用程序:为了提高数据库系统的处理能力所使用的管理数据库库的软件补充。

        数据库(DataBase,DB)提供了一个存储空间来存储各种数据,可以将数据库视为一个存储数据的容器。一个数据库可能包含许多文件,一个数据库系统中通常包含许多数据库。

        数据库管理系统(Database Management System,DBMS)是用户创建、管理和维护数据库时所使用的软件,位于用户和操作系统之间,对数据库进行统一管理。DBMS 能定义数据存储结构,提供数据的操作机制,维护数据库的安全性、完整性和可靠性。

        数据库应用程序(DataBase Application)的使用可以满足对数据管理的更高要求,还可以使数据管理过程更加直观和友好。数据库应用程序负责与 DBMS 进行通信、访问和管理 DBMS 中存储的数据,允许用户插入、修改、删除数据库中的数据。

        下面再简单介绍一下 DBMS 提供的一些功能,主要包括以下几个方面。

        1) 数据定义功能

        DBMS 提供数据定义语言(Data Definition Language,DDL),用户通过它可以方便地对数据库中的数据对象进行定义。

        2) 数据操纵功能

        DBMS 还提供数据操纵语言(Data Manipulation Language,DML),用户可以使用 DML 操作数据,实现对数据库的基本操作,如查询、插入、删除和修改等。

        3) 数据库的运行管理

        数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。例如:

  • 数据的完整性检查功能保证用户输入的数据应满足相应的约束条件;
  • 数据库的安全保护功能保证只有赋予权限的用户才能访问数据库中的数据;
  • 数据库的并发控制功能使多个用户可以在同一时刻并发地访问数据库的数据;
  • 数据库系统的故障恢复功能使数据库运行出现故障时可以进行数据库恢复,以保证数据库可靠地运行。

        4) 提供方便、有效地存取数据库信息的接口和工具

        编程人员可通过编程语言与数据库之间的接口进行数据库应用程序的开发。数据库管理员(Database Administrator,DBA)可通过提供的工具对数据库进行管理。

数据库管理员是维护和管理数据库的专门人员。

        5) 数据库的建立和维护功能

        数据库功能包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监控、分析功能等。这些功能通常由一些使用程序来完成。

六、常见数据库访问接口

        不同的程序设计语言会有各自不同的数据库访问接口,程序语言通过这些接口,执行 SQL 语句,进行数据库管理。主要的数据库访问接口主要有  ODBC、JDBC、ADO.NET 和 PDO。

        ODBC

        ODBC(Open Database Connectivity,开放数据库互连)为访问不同的 SQL 数据库提供了一个共同的接口。ODBC 使用 SQL 作为访问数据的标准。这一接口提供了最大限度的互操作性。一个应用程序可以通过共同的一组代码访问不同的 SQL 数据库管理系统。
        一个基于 ODBC 的应用程序对数据库的操作不依赖任何 DBMS,不直接与 DBMS 打交道,所有的数据库操作由对应的 DBMS 的 ODBC 驱动程序完成。也就是说,不论是 MySQL 还是 Oracle 数据库,均可用 ODBC API 进行访问。由此可见,ODBC 的最大优点是能以统一的方式处理所有的数据库。

        JDBC

        Java Data Base(JDBC,Java 数据库连接)用于 Java 应用程序连接数据库的标准方法,是一种用于执行 SQL 语句的 Java API,可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。

        ADO.NET

        ADO.NET 是微软在 .NET 框架下开发设计的一组用于和数据源进行交互的面向对象类库。ADO.NET 提供了对关系数据、XML 和应用程序的访问,允许和不同类型的数据源以及数据库进行交互。

        PDO

        PDO(PHP Data Object)为 PHP 访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。PDO 是 PHP 5 新加入的一个重大功能。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值