conceptos básicos
1. Concepto DBMS
- Base de datos (DB) Una
base de datos es una colección de datos relacionados que se almacena en la computadora durante mucho tiempo, se organiza, se administra de manera uniforme y se puede compartir
(de hecho, es el almacenamiento de datos) - Un sistema de administración de bases de datos (DBMS) es
un software para administrar bases de datos y proporciona a los usuarios métodos para acceder a la base de datos, incluida la creación, consulta, actualización y control de varios datos de la base de datos. Ubicado entre el usuario y el SO.
(De hecho, es para operar la base de datos) - Sistema de base de datos (DBS)
DBS es un sistema compuesto por hardware, software y recursos de datos que realiza el almacenamiento organizado y dinámico de grandes cantidades de datos asociados y facilita el acceso de múltiples usuarios.
(El concepto más amplio, que generalmente incluye DB, DBMS, DBA, etc.)
2. La diferencia entre mesa y vista
Tabla: Es la tabla de datos, que es la relación real en la base de datos.
Vista: Es una vista, que es una tabla derivada de una o varias tablas básicas. Aunque también es una forma relacional, no existe en la propia base de datos. Solo hay una definición sin datos, que es una relación virtual.
Concordancia: todo es una forma de relación
Diferencia: la tabla de datos está realmente almacenada en la base de datos, que es una relación real.
La vista es solo una relación virtual, no se almacenan datos.
3. Urgencias
El diagrama ER se usa para describir la relación entre cosas.
4. El modelo de estructura de tres niveles de la base de datos
-
La base de datos bajo el concepto de usuario del modo externo (modo secundario, modo de usuario) es la interfaz entre el usuario y la base de datos.
Un sistema de base de datos puede tener múltiples modos externos -
El modo conceptual (modo, modo lógico)
describe la base de datos global, una vista de datos compartida por todos los usuarios.
Un sistema de base de datos solo puede tener un modelo conceptual. -
El modo interno (modo de almacenamiento)
describe la estructura física y el modo de almacenamiento de los datos en la base de datos, y es la representación de los datos dentro de la base de datos.
Un sistema de base de datos solo puede tener un modo interno.
5. Limitaciones de los datos del modelo relacional
- Restricciones de la integridad de la entidad La integridad de la
entidad se utiliza para garantizar que cada tupla en la base de datos relacional sea distinguible y única.
(En realidad, la clave principal) - Restricciones de integridad
referencial Los requisitos de integridad referencial no permiten referencias a entidades inexistentes en las relaciones.
(En realidad, es una clave externa) - Reglas de integridad definidas por el usuario La integridad definida por el
usuario es una restricción para una base de datos relacional específica, que refleja los requisitos semánticos que deben cumplir los datos involucrados en una aplicación específica.
(De hecho, es para establecer el rango de valores, no nulos y otras regulaciones)
6. Varias operaciones básicas del álgebra relacional
Selección, proyección, unión, diferencia, producto cartesiano
- Seleccionar
seleccionar línea legal - Proyección
seleccionar columnas legales - Y
las mismas propiedades combinaron dos tablas en todas las filas y eliminaron filas duplicadas - Diferencia
Dos tablas con los mismos atributos R, S
RS calcula una tabla compuesta por filas que pertenecen a R pero que no pertenecen a S - Producto cartesiano
Si R tiene m tuplas y S tiene n tuplas, entonces R × S tiene m × n tuplas
7. El ciclo de vida de la base de datos
- Etapa de planificación
- Etapa de análisis de demanda
- Etapa de diseño conceptual
- Etapa de diseño lógico
- Etapa de diseño físico
- Fase de realización
- Fase de operación y mantenimiento
8. Cinco niveles de medidas de seguridad para proteger la base de datos
- Nivel ambiental
- Nivel de personal
- Nivel de SO
- Nivel de red
- Nivel DBS
9. Varias formas correspondientes entre entidades
1 : 1
1 : n
n : m
10. El concepto de superclave, clave primaria, clave candidata
Superclave: un conjunto de atributos que pueden representar de forma única una tupla en la relación
(una superclave es una colección de atributos, siempre que el conjunto contenga atributos que puedan identificar de forma única una tupla).
Clave candidata: una superclave que no contiene atributos redundantes.
Clave principal: seleccione la clave que es el identificador de tupla de las claves candidatas
Diseño de comando
1. Crea una base de datos
create database datebaseName;
2. Crea una tabla
por ejemplo
create table SC(
Sno char(10) not null,
Cno char(5) not null,
Degree decimal(5,1),
foreign key (Sno)
references Student (Sno),
foreign key (Cno)
references Course (Cno) on delete restrict,
check (Degree >= 0 and Degree <= 100 ));
3. Modificar la estructura de la tabla.
#添加属性
alter table <表名> add <属性名><类型>;
#删除已有属性
alter table <表名> drop<属性名>;
#属性重命名
alter table <表名> change <原属性名> <新属性名> <新的类型>;
#修改属性的数据类型
alter table <表名> modify <属性名> <新的类型>;
#删除表
drop table <表名>;
#补充主键定义
alter table <表名> add primary key(<属性名表>);
#撤销主键定义
alter table <表名> drop primary key;
#补充定义外键
alter table <表名>
add foreign key <属性> references <表名>(<属性>);
#撤消外键定义
alter table <表名> drop foreign key <外键名>;
4. Actualización del registro de la tabla
# 插入元组
insert into <表名> [(<属性列1>[, <属性列2 >…)]
values (<常量1> [, <常量>] ...... );
# 插入子查询的结果
insert into <表名> [(<属性列1> [, <属性列2>......])]
子查询;
# 删除数据
delete from <表名>
[where <条件>];
#修改数据
update <表名>
set <列名>=<表达式>[,<列名>=<表达式>]......
[where <条件>];
5. Creación de consultas
#查找格式
select [distinct] <属性列表>
from <表名/视图名>
[where <条件>]
[group by <分组列表名> [having <组合条件>]]
[order by <排序列名> [asc | desc]]
#集函数
count([distinct|all] *) #计算元组个数
count([distinct|all] <列名>) #计算某一列值个数,空值也计算
sum([distinct|all] <列名>) #计算某一列总和
avg([distinct|all] <列名>) #计算某一列平均值
max([distinct|all] <列名>) #计算某一列最大值
min([distinct|all] <列名>) #计算某一列最小值
#having中可以使用集函数作为条件,having不能单独出现,只能和group by一起出现
Para obtener más ejemplos de consultas, consulte los ejercicios prácticos 3 y 4
## 下面是几个例子
# 查询指定列
select Sname, Ssex, Sbirthday from student
where Speciality='电子商务';
# 查询全部列
select * from student
where(Ssex = '女' and 2020 - year(Sbirthday)>20 );
# 使用别名改变列标题
select sdept as '系', count(Sno) as '人数'
from student
group by sdept;
6. Ver creación
# 视图创建语句
create view <视图名> [(<列名> [,<列名>]......)]
as <子查询>
[with check option];
# 删除视图
drop view if exists <视图名>;
7. La creación de un disparador simple
#只有表才有触发器,视图不支持触发器
create
[definer = { user | current_user }]
trigger trigger_name
trigger_time trigger_event
on tbl_name for each row
trigger_body
#举个例子
create trigger trigger_student_count_insert
after insert on student_info for each row
update student_count #表名
set student_count=student_count+1;