1、数据库(Database,DB)是按照数据结构来组织、存储和管理数据的,并且是建立在计算机存储设备上的仓库
2、什么是数据库:(用来存储数据的仓库)
数据库:
数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的 过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用 数据库是长期存放在计算机内、有组织、可共享的数据即可。 数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种 用户共享
3、
数据库系统:数据库系统有3个主要的组成部分。
数据库
数据库(Database System):用于存储数据的地方。
数据库管理系统
数据库管理系统(Database Management System,DBMS): 用于管理数据库的软件。
数据库应用程序
数据库应用程序(Database Application):为了提高数据库系统的处理能力所使用的管理数据库的软件补充。
4 数据库服务器、数据管理系统、数据库、表与记录的关系(重点
记录:1 黎诗 963852741(多个字段的信息组成一条记录,即文件中的一行内容) 表:student,school,class_list(即文件) 数据库:oldboy_stu(即文件夹) 数据库管理系统:如mysql(是一个软件) 数据库服务器:一台计算机(对内存要求比较高) 总结: 数据库服务器-:运行数据库管理软件 数据库管理软件:管理-数据库 数据库:即文件夹,用来组织文件/表 表:即文件,用来存放多行内容/多条记录
5、数据库管理技术的发展历程(了解)
一 人工管理阶段 20世纪50年代中期以前,计算机主要用于科学计算。 当时的硬件水平:外存只有纸带、卡片、磁带,没有磁盘等直接存取的存储设备 当时的软件状况:没有操作系统,没有管理数据的软件,数据的处理方式是批处理。 人工管理数据具有以下特点: 1 数据不保存:计算机主要用于科学计算,数据临时用,临时输入,不保存 2 应用程序管理数据:数据要有应用程序自己管理,应用程序需要处理数据的逻辑+物理结构,开发负担很重 3 数据不共享:一组数据只对应一个程序,多个程序之间涉及相同数据时,必须各自定义,造成数据大量冗余 4 数据不具有独立性:数据的逻辑结构或物理结构发生变化后,必须对应用程序做出相应的修改,开发负担进一步加大
二 文件系统阶段 20世纪50年代后期到60年代中期 硬件水平:有了磁盘、磁鼓等可直接存取的存储设备 软件水平:有了操作系统,并且操作系统中已经有了专门的数据管理软件,即文件系统;处理方式上不仅有了批处理,而且能够联机实时处理 文件系统管理数据具有以下优点: 1 数据可以长期保存:计算机大量用于数据处理,因而数据需要长期保存,进行增删改查操作 2 由文件系统管理数据:文件系统这个软件,把数据组织成相对独立的数据文件,利用按文件名,按记录进行存取。实现了记录内的结构性,但整体无结构。并且程序与数据之间由文件系统提供存取方法进行转换,是应用程序与数据之间有了一定的独立性,程序员可以不必过多考虑物理细节。 文件系统管理数据具有以下缺点: 1 数据共享性差,冗余度大:一个文件对应一个应用程序,不同应用有相同数据时,也必须建立各自的文件,不能共享相同的数据,造成数据冗余,浪费空间,且相同的数据重复存储,各自管理,容易造成数据不一致性 2 数据独立性差:一旦数据的逻辑结构改变,必须修改应用程序,修改文件结构的定义。应用程序的改变,也将引起文件的数据结构的改变。因此数据与程序之间缺乏独立性。可见,文件系统仍然是一个不具有弹性的无结构的数据集合,即文件之间是孤立的,不能反映现实世界事物之间的内存联系。
三 数据系统阶段 20世纪60年代后期以来,计算机用于管理的规模越来越大,应用越来越广泛,数据量急剧增长,同时多种应用,多种语言互相覆盖地共享数据结合要求越来越强烈 硬件水平:有了大容量磁盘,硬件架构下降 软件水平:软件价格上升(开发效率必须提升,必须将程序员从数据管理中解放出来),分布式的概念盛行。 数据库系统的特点: 1 数据结构化(如上图odboy_stu) 2 数据共享,冗余度低,易扩充 3 数据独立性高 4 数据由DBMS统一管理和控制 a:数据的安全性保护 b:数据的完整性检查 c:并发控制 d:数据库恢复
6、统一字符编码
#1. 修改配置文件 [mysqld] default-character-set=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8 #mysql5.5以上:修改方式有所改动 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8 [mysql] default-character-set=utf8 #2. 重启服务 #3. 查看修改结果: \s show variables like ‘%char%‘
统一字符编码
7、数据库的优势:
优势
8、数据库分类
一般咱们分类两类,一类称之为关系型数据库,另一类称之为非关系型数据库 关系型数据库: mysql、oracle 、 spl、server、db2、sybase 非关系型数据库: redis、MongoDB
数据库分类
RDBMS:关系数据库管理系统(Relational Database Management System)的特点: 数据以表格的形式出现 每行为各种记录名称 每列为记录名称所对应的数据域 许多的行和列组成一张表单 若干的表单组成database
9、数据表
关系数据库没有数据表,关键字、主键、索引等也就无从谈起,数据表是关系数据库中一个非常重要的对象,是其它对象的基础,也是一系列二维数组的集合,用来存储、操作数据的逻辑结构。根据信息的分类情况。一个数据库中可能包含若干个数据表,每张表是由行和列组成,记录一条数据数据表就增加一行,每一列是由字段名和字段数据集合组成,列被称之为字段,每一列还有自己的多个属性,例如是否允许为空、默认值、长度、类型、存储编码、注释等
非关系型数据库(NoSQL)
一词最早出现于1998年,是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库。当代典型的关系数据库在一些数据敏感的应用中表现了糟糕的性能,例如为巨量文档创建索引、高流量网站的网页服务,以及发送流式媒体。关系型数据库的典型实现主要被调整用于执行规模小而读写频繁,或者大批量极少写访问的事务。 MongoDB MongoDB 是一个高性能,开源,无模式的文档型数据库,开发语言是C++。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。 Redis Redis 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。目前由VMware主持开发工作。
NoSQL
MysSQL的历程:
MySQL(官方发音为英语发音:/ma? ??skju???l/ My S-Q-L,但也经常读作英语发音:/ma? ?si?kw?l/ My Sequel)原本是一个开放源代码的关系数据库管理系统(DBMS),原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL成为Oracle旗下产品。在本教程中,会让大家快速掌握MySQL的基本知识,并轻松使用MySQL数据库。
黑历史
MySQL 介绍 MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。 但被甲骨文公司收购后,Oracle大幅调涨MySQL商业版的售价,且甲骨文公司不再支持另一个自由软件项目OpenS olaris的发展,因此导致自由软件社区们对于Oracle是否还会持续支持MySQL社区版(MySQL之中唯一的免费版本)有所隐忧,因此原先一些使用MySQL的开源软件逐渐转向其它的数据库。例如维基百科已于2013年正式宣布将从MySQL迁移到MariaDB数据库。MySQL的创始人麦克尔·维德纽斯以MySQL为基础,成立分支计划MariaDB。
介绍
MySQL 发展历史 很多人以为MySQL是最近15年内才出现的数据库,其实MySQL数据库的历史可以追溯到1979年,那时 Bill Gates 退学没多久,微软公司也才刚刚起步,而Larry的Oracle公司也才成立不久。那时有一个天才程序员 Monty Widenius 用 BASIC 设计了一个报表工具,过了不久,又将此工具使用 C 语言重写,一直到 UNIX 平台,当时只是一个底层的面向报表存储引擎名叫Unireg。 1985 年,瑞典的几位志同道合小伙子(David Axmark、Allan Larsson 和Monty Widenius) 成立了一家公司,这就是MySQL AB 的前身。 1990年,TcX公司的客户中开始有人要求为他的API提供SQL支持。当时有人提议直接使用商用数据库,但是Monty觉得商用数据库的速度难以令人满意。于是,他直接借助于mSQL的代码,将它集成到自己的存储引擎中。令人失望的是,效果并不太令人满意,于是,Monty雄心大起,决心自己重写一个SQL支持。 1996年,MySQL 1.0发布,它只面向一小拨人,相当于内部发布。 1996年10月,MySQL 3.11.1发布(MySQL没有2.x版本),最开始只提供Solaris下的二进制版本。一个月后,Linux版本出现了。 1999~2000年,MySQL AB公司在瑞典成立。Monty雇了几个人与Sleepycat合作,开发出了Berkeley DB引擎, 因为BDB支持事务处理,所以MySQL从此开始支持事务处理了。 2003年12月,MySQL 5.0版本发布,提供了视图、存储过程等功能。 2008年1月16日,Sun(太阳微系统)正式收购MySQL。 2009年4月20日,甲骨文公司宣布以每股9.50美元,74亿美元的总额收购Sun电脑公司。 2010年12月,MySQL 5.5发布,其主要新特性包括半同步的复制及对SIGNAL/RESIGNAL的异常处理功能的支持,最重要的是InnoDB存储引擎终于变为当前MySQL的默认存储引擎。 2013年6月18日,甲骨文公司修改MySQL授权协议,移除了GPL。但随后有消息称这是一个bug。
黑历史
时间: 2024-10-18 20:29:32