热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

《MySQL数据库》之浅尝辄止(一)数据库相关概念及历史发展

一、数据存储的历史发展自从人类开启灵智以来,就学会了记录数据,比如远古人用石头在墙壁上画道道用来统计打回来的猎物数量,后来出现了甲骨文用

一、数据存储的历史发展

自从人类开启灵智以来,就学会了记录数据,比如远古人用石头在墙壁上画道道用来统计打回来的猎物数量,后来出现了甲骨文用来记录人类的文明发展,再如我们知道的古代人使用竹子,布等充当记录文字的工具。造纸术的发明,大大提高了人类文明的进步,使我们在数据记录和文明传播上更为方便快捷,近代计算机的发明,让我们的世界文明有了质的飞跃,开始进入科技时代。在数据存储上,数据库软件的出现,让我们少了很多在管理数据上的负担。

从数据管理的角度看,数据库技术到目前共经历了手工管理、文件系统和数据库系统三个阶段。


1、手工管理阶段

是指计算机诞生的初期(即20世纪50年代后期之前),这个时期的计算机主要用于科学计算。从硬件看,没有磁盘等直接存取的存储设备;从软件看,没有操作系统和管理数据的软件,数据处理方式是批处理。具有以下特点


(1)数据不保存。只用于科学计算,如在计算某一课题时,将数据输入,用完后不保存原始数据,也不保存计算结果。
(2)没有软件系统对数据进行统一管理。数据的逻辑结构,包括存储结构,存取方式和输入输出方式会随着数据的变化而            变化,数据与程序不具备一致性,无法统一管理。
(3)数据不共享。数据是面向应用的,即使两个应用用到相同的数据,也必须各自定义,组织,数据无法共享。
(4)数据不具有独立性。数据与应用密切相关,应用改变,数据也会跟着变化,因此没有独立性。



2、文件管理

是指计算机不仅用于科学计算,而且还大量用于管理数据的阶段(从50年代后期到60年代中期)。在硬件方面,外存储器有了磁盘、磁鼓等存储设备。在软件方面,操作系统中已经有了专门用于管理数据的软件,称为文件系统。可以总结出以下特点


(1)数据以文件的形式可以长期保存。由于文件概念的引用,数据可以长期保留,因此可以经常对文件进行查询、修改、插      入和删除等反复操作。
(2)由文件系统管理数据。操作系统提供了文件管理系统和访问文件的存取方法,程序和数据之间有了数据存取的接口,程      序可以通过文件名和数据打交道,不必再寻找数据的物理存放位置。
(3)文件形式多样化。文件形式如由顺序文件,索引文件、链表文件等。
(4)数据存取以记录为单位


尽管文件系统有上述优点,但是,文件系统仍存在缺点,如 


(1)数据共享性差,冗余度大
(2)数据独立性差



3、数据库管理

从60年代后期开始,进入数据库管理阶段。在这一阶段中,数据库中的数据不再是面向某个应用或某个程序,而是面向整个企业(组织)或整个应用的。数据库系统阶段的特点如下


(1)面向数据模型化。这个时期,数据库系统不仅可以描述数据本身,还可以描述数据之间的复杂关系。
(2)较高的数据独立性。数据和程序彼此独立,数据存储结构的变化,尽量不影响用户的使用。
(3)冗余度低。数据库系统中的重复数据被减少到最低程度,这样,在有限的存储空间内可以存放更多的数据并减少存取时      间。
(4)数据由DBMS统一管理和控制。数据库系统具有数据的安全性,以防止数据的丢失和被非法使用;具有数据的完整性,      以保护数据的正确、有效和相容;具有数据的并发控制,避免并发程序之间的相互干扰;具有数据的恢复功能,在数据      库被破坏或数据不可靠时,系统有能力把数据库恢复到最近某个时刻的正确状态。



二、数据库的相关概念


1、数据库

英文名Database,简称DB。是按照某一特定的数据结构来组织、存储和管理数据的仓库。


2、数据库管理系统

英文名Database Management System,简称DBMS。是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。它介于用户和数据库之间。用户通过DBMS来访问数据库中的数据。


三、表的概念


1、数据表(table),是关系型数据库的基本存储结构。一个关系型数据库是由多个表组成的。

2、数据表是二维的,它由纵向的列和横向的行组成。

3、数据表的行(Row)是横排数据,也被称之为记录(Recond)。

4、数据表的列(Column)是竖排数据,也被称之为字段(Field)。

5、表与表之间也可能存在着关系。


例如一个有关学生信息的名为 students 的表中,每个列包含的是所有学生的某个特定类型的信息,比如“姓名”,而每行则包含了某个特定学生的所有信息:姓名、学号、专业,院校等等。

对于数据表来说,列的数目一般事先固定,各列之间可以由列名来识别;而行的数目可以随着时间,动态变化。每行通常都可以根据某个或某几个列中的数据来识别。


四、关系型数据库 

首先,我们需要了解一个名词“关系模型”的概念。所谓关系模型,就是指二维表格结构,即表的行与列的关系。比如设计教师信息的关系模型,就是一条记录表示一个教师的信息,而这条记录中每个字段表示这个教师的特定信息。教师(教师编号,姓名,年龄,性别,科目)。

关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据;一个关系型数据库是由二维表及其之间的联系组成的一个数据组织。现实世界中的各种实体以及实体之间的各种联系,我们均可以使用关系模型来表示。

当前主流的关系型数据库有Oracle、DB2、Sybase、Microsoft SQL Server、Microsoft Access、MySQL等。


Oracle数据库,是著名的Oracle(甲骨文)公司旗下的数据库产品,是世界上第一个商品化的关系型数据库管理系统,采用标准SQL,支持多种数据类型,提供面向对象的数据支持,支持unix,windows,os/2等多种平台。目前最新版本oracle 12.2c。

DB2,是IBM公司的关系型数据库管理系统。有很多不同的版本,可以运行在从掌上产品到大型机不同的终端及其上。是oracle的主要竞争对手。

Sybase,是美国Sybase公司的数据库产品,2010年被SAP收购。

SQL Server,是微软旗下的产品,运行在windows NT服务器上。现在的应用领域越来越大。

Microsoft Office Access,是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。

MySQL,是开放源码的小型数据库管理系统,最开始是瑞典的MySQLAB公司的产品,后来被Sun公司收购,在2009年4月20号Sun公司被Oracle收购。


------------------------------------------------------------------------------未完待续-------------------------------------------------------------------------------

 


推荐阅读
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • Navicat Premium 15 安装指南及数据库连接配置
    本文详细介绍 Navicat Premium 15 的安装步骤及其对多种数据库(如 MySQL 和 Oracle)的支持,帮助用户顺利完成软件的安装与激活。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细探讨了不同SQL数据库管理系统(DBMS)在限制输出结果、拼接字段和日期时间处理方面的函数差异。通过具体示例,帮助读者理解并掌握如何在不同DBMS中实现相同功能。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • MySQL 用户创建失败的解决方案
    本文详细介绍了在 MySQL 中遇到用户创建失败问题时的解决方法,包括如何正确配置环境、执行命令以及常见错误排查技巧。通过逐步指导,帮助用户顺利添加和管理 MySQL 用户。 ... [详细]
  • 本文详细介绍了 MySQL 的查询处理流程,包括从客户端连接到服务器、查询缓存检查、语句解析、查询优化及执行等步骤。同时,深入探讨了 MySQL 中的乐观锁机制及其在并发控制中的应用。 ... [详细]
author-avatar
mr.sun
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有