数据库入门1 了解数据库

知识内容:

1.数据库技术的概述

2.数据库技术的发展

3.主流的数据库介绍

4.关系型数据库中常用术语

一、数据库技术的概述

1.什么是数据库、数据库管理系统、数据库系统、关系型数据库

数据库(DB): 数据库是长期存放在计算机内的、有组织的、可共享的数据的集合

数据库管理系统(DBMS):  数据库管理系统是一种负责数据库的定义、建立、操作、管理和维护的软件系统

数据库系统(DBS):  数据库系统是实现有组织地、动态地存储大量关联数据方便多用户访问的计算机软件、硬件和数据资源组成的系统

关系型数据库(RDMS):关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据

注:

关于数据库系统(DBS):狭义的讲,数据库和数据库管理系统加在一起构成数据库系统(DBS);广义的讲,数据库系统是由数据库、硬件、软件和数据库管理员4个部分组成

2.数据库系统介绍

(1)数据库系统的分类

根据计算机的系统结构,DBS(数据库系统)可分为4类:  集中式、客户服务式、并行式和分布式

(2)数据库系统组成部分

一个典型的数据库系统应该包括数据库、硬件、软件(应用程序)和数据库管理员(DBA)4个部分,狭义地讲数据库和数据库管理系统加在一起就构成了数据库系统

(3)数据库系统的特点

  • 数据库系统中的数据是结构化的
  • 数据冗余度小,易于扩充
  • 较高的数据和程序独立性
  • 数据库为用户提供了方便的接口
  • 数据的最小单位是数据项

(4)数据库系统的控制功能

  • 数据的安全性控制 -> 防止数据的泄密和损坏
  • 数据的完整性约束 -> 数据的正确性、有效性和相容性
  • 并发控制 -> 防止多个用户同时存取、修改数据库中的数据时,发生相互干扰而使数据完整性收到破坏
  • 数据库的恢复 -> 数据库发生故障时就需要使用到数据库的恢复

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

所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据
RDBMS即关系数据库管理系统(Relational Database Management System)的特点:

  • 数据以表格的形式出现
  • 每行为各种记录名称
  • 每列为记录名称所对应的数据域
  • 许多的行和列组成一张表单
  • 若干的表单组成database

非关系型数据库:NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题

非关系数据库特点:

  • 数据模型比较简单
  • 数据库性能高
  • 不需要高度的数据一致性
  • 对于给定key,比较容易映射复杂值的环境

常见的关系型数据库:MySQL、oracle、SqlServer、DB2,常见的非关系型数据库:redis、mongodb

二、数据库技术的发展

1.web应用开发技术简单介绍

(1)CGI编程  -> 现在已经没人用这玩意开发了!

CGI(通用网关接口)是一种通信标准,它的任务是接受客户端的请求,经过辨认和处理,生成HTML文档并重新传送到客户端。这种交互过程的编程就叫做通用网关接口编程。CGI可以运行在多个平台上,可以使用多种语言编写CGI程序,但是其也有致命缺点: 速度慢、安全性差

(2)ASP

ASP(动态服务器页面)是微软公司推出的用以取代CGI的技术,是简单易学、功能强大的服务器编程技术。通过ASP可以建立动态的、交互的、高效的、web服务器应用程序。用ASP编写的程序在服务端执行,程序执行完毕后再将执行的结果返回给客户端浏览器,这样不仅减轻了客户端浏览器的压力,大大提高了交互速度,而且避免了ASP程序源代码的外泄,提高了程序的安全性

(3)JSP

JSP(Java服务器页面)是sun公司推出的web应用开发技术,一经推出就大受关注。JSP技术使用Java语言编写服务器端程序,当客户端向服务器发生请求时,JSP源程序被编译成servlet并由Java虚拟机执行。这种编译仅在对JSP页面的第一次请求时发生,因此JSP程序能够提供更快的交互速度,安全性和跨平台性也很优秀

(4)MVC架构 ->  现在最流行的web应用开发架构

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中

现在主流的web框架几乎都是采用的MVC架构

2.数据库技术的发展3大阶段

(1)人工管理阶段

20世纪50年代以前,计算机主要用于数值计算.从当时的硬件看,外存只有纸带,卡片,磁带,没有直接存取设备;从软件看(实际上,当时还未形成软件的整体概念),没有操作系统以及管理数据的软件;从数据看,数据量小,数据无结构,由用户直接管理,且数据间缺乏逻辑组织,数据依赖于特定的应用程序,缺乏独立性

(2)文件系统阶段

50年代后期到60年代中期,出现了磁鼓,磁盘等数据存储设备.新的数据处理系统迅速发展起来。这种数据处理系统是把计算机中的数据组织成相互独立的数据文件,系统可以按照文件的名称对其进行访问,对文件中的记录进行存取,并可以实现对文件的修改,插入和删除,这就是文件系统.文件系统实现了记录内的结构化,即给出了记录内各种数据间的关系。但是,文件从整体来看却是无结构的.其数据面向特定的应用程序,因此数据共享性,独立性差,且冗余度大,管理和维护的代价也很大

 

(3)数据库系统阶段

60年代后期,出现了数据库这样的数据管理技术.数据库的特点是数据不再只针对某一特定应用,而是面向全组织,具有整体的结构性,共享性高,冗余度小,具有一定的程序与数据间的独立性,并且实现了对数据进行统一的控制

三、主流的数据库介绍

1.SqlServer

(1)SqlServer介绍

SQL Server是由Microsoft开发和推广的数据库,是一种应用广泛的数据库管理系统

(2)SqlServer优缺点

优点:

  • 易用性
  • 适合分布式组织的可伸缩性
  • 用于决策支持的数据仓库功能
  • 与许多其他服务器软件紧密关联的集成性
  • 良好的性价比

缺点:

  • 开放性:  只能运行在微软的windows平台,没有丝毫的开放性可言
  • 可伸缩性及并行性:  并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限
  • 性能稳定性:  SQLServer当用户连接多时性能会变的很差,并且不够稳定
  • 使用风格:  SQLServer完全重写的代码,经历了长期的测试,不断延迟,许多功能需时间来证明。并不十分兼容早期产品。使用需要冒一定风险
  • 客户端支持及应用模式:  只支持C/S模式

2.MYSQL

(1)MySQL介绍

MySQL是一个关系型数据库管理系统由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件

另外由于其体积小、速度快、总体拥有成本低,尤其是开发源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 组成良好的开发环境

 

(2)MySQL的优缺点

优点:

  • 体积小、速度快、总体拥有成本低,开源支持多种操作系统
  • 是开源数据库,提供的接口支持多种语言连接操作
  • 核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源
  • 支持ODBC for Windows, 支持所有的ODBC 2.5函数和其他许多函数, 可以用Access连接MySql服务器, 使得应用被扩展
  • 支持大型的数据库, 可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库,可以针对不同的应用进行相应的修改
  • 拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性
  • MySQL同时提供高度多样性,能够提供很多不同的使用者介面,包括命令行客户端操作,网页浏览器,以及各式各样的程序语言介面
  • 跨平台,可以在Windows、Linux、Unix、Mac上使用


缺点:

  • 不支持热备份
  • MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变
  • 没有一种存储过程(Stored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制

3.oracle

(1)oracle介绍

Oracle是甲骨文公司的一款关系型数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案

(2)oracle优缺点

优点:

  • 开放性:oracle能所有主流平台上运行(包括 windows)完全支持所有工业标准采用完全开放策略使客户选择适合解决方案对开发商全力支持
  • 可伸缩性,并行性:Oracle 并行服务器通过使组结点共享同簇工作来扩展windownt能力提供高用性和高伸缩性
  • 安全性:获得最高认证级别的ISO标准认证
  • 性能:Oracle 性能高 保持开放平台下TPC-D和TPC-C世界记录
  • 客户端支持及应用模式:Oracle 多层次网络计算支持多种工业标准用ODBC、JDBC、OCI等网络客户连接
  • 使用风险:Oracle 长时间开发经验完全向下兼容得广泛应用地风险低 

缺点:

  • 对硬件的要求很高
  • 价格比较昂贵
  • 管理维护麻烦一些
  • 操作比较复杂,需要技术含量较高

4.DB2

IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本

5.MongoDB

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案

MongoDB是一个介于关系型数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json中的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引

6.Redis

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。Redis读写数据的效率极高,远远超过数据库,因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大节省系统直接读取磁盘来获得数据的I/O开销,更重要的是可以极大提升速度

四、关系型数据库中常用术语

  • 数据库: 数据库是一些关联表的集合。.
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
  • 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余:存储两倍数据,冗余可以使系统速度更快。(表的规范化程度越高,表与表之间的关系就越多;查询时可能经常需要在多个表之间进行连接查询;而进行连接操作会降低查询速度。例如,学生的信息存储在student表中,院系信息存储在department表中。通过student表中的dept_id字段与department表建立关联关系。如果要查询一个学生所在系的名称,必须从student表中查找学生所在院系的编号(dept_id),然后根据这个编号去department查找系的名称。如果经常需要进行这个操作时,连接查询会浪费很多的时间。因此可以在student表中增加一个冗余字段dept_name,该字段用来存储学生所在院系的名称。这样就不用每次都进行连接操作了。)
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  • 外键:外键用于关联两个表。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性
原文地址:https://www.cnblogs.com/wyb666/p/8692548.html