热门标签 | 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收购。


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

 


推荐阅读
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • MySQL锁机制详解
    本文深入探讨了MySQL中的锁机制,包括表级锁、行级锁以及元数据锁,通过实例详细解释了各种锁的工作原理及其应用场景。同时,文章还介绍了如何通过锁来优化数据库性能,避免常见的并发问题。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 本文探讨了在 SQL Server 中使用 JDBC 插入数据时遇到的问题。通过详细分析代码和数据库配置,提供了解决方案并解释了潜在的原因。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文详细介绍了如何解压并安装MySQL集群压缩包,创建用户和组,初始化数据库,配置环境变量,并启动相关服务。此外,还提供了详细的命令行操作步骤和常见问题的解决方案。 ... [详细]
  • 本文详细介绍了如何在Linux系统中创建和管理DB2数据库,包括用户切换、数据库创建、错误处理、连接与断开、表空间和缓冲池的创建,以及用户权限管理和数据导入导出等操作。 ... [详细]
  • 本文将详细介绍通过CAS(Central Authentication Service)实现单点登录的原理和步骤。CAS由耶鲁大学开发,旨在为多应用系统提供统一的身份认证服务。文中不仅涵盖了CAS的基本架构,还提供了具体的配置实例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 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社区 版权所有