1.数据库的基本概念:
- 数据(data):
1.描述事物的符号记录
2.包括数字.文字.图形.图像.声音.档案记录等
3.以”记录”形式按统一的格式进行存储. - 表:
1.将不同的记录组织在一起
2.用来存储具体数据 - 数据库:
1.表的集合,是存储数据的仓库,一个数据库有多个表
2.以一定的组织方式存储的相互有关的数据集合. - 数据库管理系统(DBMS):
是实现对数据库资源有效组织,管理和存取的系统软件. - 数据库系统:
1.是一个人机系统,由硬件.os(宿主系统).数据库.dbms.应用软件和数据库用户组成.
2.用户可以通过DBMS或应用程序操作数据库.
2.数据库分类:
-
关系型数据库(rds):
数据类型:字符,字符串,数值,布尔值
大型数据库: oracle db2 sybase
中型数据库: Mysql sql server
小型数据库: access -
非关系型数据库(oss):
数据类型:图片,视频,音频 (非结构化数据)
多**用于大数据方向上 -
数据库的发展史:
*第一代数据库:
自20世纪60年代,第一代数据库系统问世
是层次模型与网状模型的数据库系统
为统一管理和共享数据提供了有力的支撑
*第二代数据库:
20世纪70年代初,第二代数据库-关系数据库开始出现
20世纪80年代初,ibm公司的关系数据库系统db2问世,开始逐步取代层次与网状模型的数据库,成为行业主流.
到目前为止,关系数据库系统占领数据库应用的主要地位.
*第三代数据库:
自20世纪80年代开始,适应不同领域的新型数据库系统不断涌现
面向对象的数据库系统,实用性强,适应面广
20世纪90年代后期,形成了多种数据库共同支撑应用的局面
3,当代主流数据库介绍:
- 1.SQL Server (微软):面向window操作系统,简单,易用
- 2.Oracle(甲骨文):面向所有主流平台,安全,完善,操作复杂
- 3.DB2(IBM):面向所有主流平台,大型,安全,完善
- 4.Mysql(甲骨文收购):免费,开源,体积小
4,关系数据库:
- 1.关系数据库系统是基于关系模型的数据库系统
- 2.关系数据库的数据结构使用简单易懂的二维数据库
- 3.关系模型可用简单的”实体-关系”图来表示
- 4.E-R图包含了实体(数据对象),关系,属性三个要素
- 5.实体:
对应现实世界中可区别其他对象的”事件”或”事物”,如:银行客户,银行账户 - 6.属性:
实体所具有的某个特性,一个实体可以有多个属性,如银行客户的姓名,住址,电话 - 7.联系:
实体集之间的对应关系
所有实体集及实体之间联系的集合构成一个关系数据库
- 8.关系数据库的存储结构是二维表格
- 9.在每个二维表中
每一行称为一条记录,用来描述一个对象的信息
每一列称为一条字段,用来描述一个对象的属性
5,非关系数据库(oss):
- 非关系数据库:NoSQL(Not Only SQL)
储存数据不以关系模型为依据,不需要固定的表格式 - 特点:
数据库可高并发读写
对海量数据高效率储存于访问
数据库具有高拓展性于高可用性 - 常用的有:
Redis(内存数据库 高热数据 可持久化)微服务.两种模式:群集6节点3-3,哨兵
mongoDB:可持久化
Memcache:不可持久化 - K-V形式存储非关系性数据库:key-value 键名-值
6,Mysql数据库介绍:
- 一款深受欢迎的开源关系性数据库
- Oracle旗下的产品
- 遵守GPL协议,可以免费使用与修改
- 特点:
1、性能卓越,服务稳定
2、开源无权限限制,成本低
3、多线程,多用户
4、基于c/s(客户/服务器)架构
5、安全可靠
7,安装mysql数据库:
安装mysql数据库:
1、安装数据库所需要的基本环境:
[root@localhost ~]# yum -y install \
ncurses \
ncurses-devel \
bison \
cmake
[root@localhost ~]# useradd -s /sbin/nologin mysql 添加程序用户
[root@localhost ~]# cd /opt/ 将数据库所需要的俩个文件拖经来:mysql、boost
[root@localhost ~]# tar zxvf mysql -C /opt/
[root@localhost ~]# tar zxvf boost -C /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost ~]# mv boost_1_59_0 boost 将繁琐的名字修改简洁
[root@localhost ~]# cd /opt/mysql/
[root@localhost ~]# yum -y install gcc gcc-c++
[root@localhost ~]# cmake \
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1
[root@localhost ~]# make && make install
2、修改mysql软件的相关参数配置:
[root@localhost ~]# chown -R mysql.mysql /etc/local/mysql/
[root@localhost ~]# vim /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
[root@localhost ~]# chown mysql.mysql /etc/my.cnf
[root@localhost ~]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@localhost ~]# echo 'export PATH' >> /etc/profile
[root@localhost ~]# source /etc/profile
[root@localhost ~]# cd /usr/local/mysql/
[root@localhost ~]# bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
[root@localhost ~]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# netstap -ntap | grep 3306
[root@localhost ~]# systemctl enable mysqld
3、设置原始数据库的账户信息及其他信息
[root@localhost ~]# mysqladmin -u root -p password "123"
直接回车
[root@localhost ~]# mysql -u root -p
输入密码:123
mysql>grant all privileges on *.* to 'root'@'%' identified by '123' with grant option;