Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos...

59
Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales. 1.3 Instalación de un DBMS. 1.4 Creación del esquema de la base de datos. 1.5 Modificación al esquema de BD. 1.6 Aplicación de restricciones. Unidad 1 Lenguaje de Definición de Datos (DDL)

Transcript of Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos...

Page 1: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1

1.1 Conceptos Fundamentales de BD.

1.2 Las mejores prácticas de diseño de

Bases de Datos Relacionales.

1.3 Instalación de un DBMS.

1.4 Creación del esquema de la base de datos.

1.5 Modificación al esquema de BD.

1.6 Aplicación de restricciones.

Unidad 1Lenguaje de Definición de Datos (DDL)

Page 2: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 2

¿Qué es una Base de Datos?

Colección de datos pertenecientes a una organización.

Todos los datos dentro de un organismo tienen relación entre sí aunque no siempre sea evidente.

1.1 Conceptos básicos y características de los DBMS.

Page 3: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 3

¿Qué es un Sistema para el Manejo deBases de Datos (DBMS)?

Programas necesarios para facilitar laorganización, almacenamiento y recuperaciónlos datos.

Además contribuye a mantener la seguridade integridad de la base de datos a pesar delas caídas del sistema o los intentos de accesosin autorización.

1.1 Conceptos básicos y características de los DBMS.

Page 4: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 4

Sistemas de InformaciónAutomatizados

Usuarios

SoftwareProgramas de AplicaciónDBMSSistema Operativo

DatosBase de Datos

Hardware

1.1 Conceptos básicos y características de los DBMS.

Page 5: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 5

Un DBMS recibe las solicitudes de datos provenientes de un comando o un programa de aplicación completo.

Luego instruye al Sistema Operativo para transferir la información apropiada.

Por lo tanto, es un intermediario:

Sistema Operativo

DBMS

Programas de Aplicación

1.1 Conceptos básicos y características de los DBMS.

Page 6: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 6

Evitar inconsistencia de datos, cuando por alguna razón, se decide que haya redundancia.

Obtener fácilmente reportes (consultas) sin necesidad de que un programador escriba un programa complejo.

Mantener la integridad de los datos: Integridad Referencial.

Transacciones (Atomicidad).

Acceso concurrente.

El buen uso de los DBMS’s permite:

1.1 Conceptos básicos y características de los DBMS.

Page 7: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 7

Mantener la Independencia de los Datos.

Habilidad de hacer cambios en el esquema sin que se afecten los programas de aplicación.

Mantener la seguridad.

Impedir accesos no autorizados.

Mostrar los datos a cada usuario según su perfil.

1.1 Conceptos básicos y características de los DBMS.

Page 8: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 8

Clasificación de los usuarios de acuerdo a la forma en que

interactúan con la Base de Datos

• Programadores de aplicaciones• Usuarios Sofisticados• Usuarios Ingenuos• Administradores de la Base de Datos

1.1 Conceptos básicos y características de los DBMS.

Page 9: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 9

DDL

Create

DMLInsert

Update

Delete

Select (SQL)

Lenguajes de un Sistema de Bases de Datos.

1.1 Conceptos básicos y características de los DBMS.

Page 10: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

10

Diagrama General de un Sistema de Bases de

Datos

Programas de aplicación en código objeto

Lenguajes de Programación

con DML

Lenguajes de Consulta

(QL)

Diseño de BD mediante

DDL

PrecompiladorDML

Compilador del Lenguaje de Programación

Procesador de consultas

CompiladorDDL

Gestor de bases de datos (DBM)

DBMS

Almacenamientoen disco

Usuarios Programadores Usuarios Usuario Ingenuos de aplicaciones Sofisticados Especializado

(capturistas) (DBA)

Archivos

Diccionario de datos

Gestor de archivos a bajo nivel PARTE DEL SISTEMA OPERATIVO

Page 11: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

11

Programas de aplicación en código objeto

Lenguajes de Programación

Compilador del Lenguaje de Programación

Almacenamientoen disco

UsuariosIngenuos Programadores

y Sofisticados de aplicaciones

Archivos

Gestor de archivos a bajo nivel

Diagrama de los sistemas basados

en el Proceso de Archivos

Page 12: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 12

Los DBMS más populares

1.1 Conceptos básicos y características de los DBMS.

Page 13: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 13

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

Para crear una Base de Datos robusta, demuy poco sirve conocer un DBMS si no serespetan los fundamentos de diseño.

Estos criterios no sustituyen a los conceptosde los Modelos E-R o Relacional; provienen deellos y son consejos prácticos para crearmejores esquemas.

Page 14: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISCIng. Felipe Alanís González - ITD - 14

Los nombres de las tablas deben ser una palabra en plural.AlumnosMueblesAulasMateriasPersonas

O una palabra que implique un grupo de objetos.Inventario.Mobiliario.Retícula.

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

Page 15: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 15

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

Hay que diseñar usando tablas disjuntas.

Los conjuntos disjuntos son aquellos cuya intersección esun conjunto vacío.

Si tenemos necesidad de crear tablas para Alumnos,Maestros y Directivos, SE DEBE crear una tabla llamadaPersonas porque, por ejemplo, un maestro puedeocupar un puesto directivo y podría haber redundancia.

Personas contendrá los atributos en común deAlumnos, Maestros, Directivos, etc. y estas tres tablascontendrán únicamente aquellos atributos de losdiferentes roles de las personas.

Page 16: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

Page 17: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

En un esquema estrictamente diseñado ningún atributo de una entidaddebe pertenecer a una tabla correspondiente a otra entidad, ni siquierallaves foráneas.

Por lo tanto, debería haber tablas AlumnosPersona(idAlumno,idPersona) y MaestrosPersona (idMaestro,idPersona). Sinembargo como un alumno o un maestro solo pueden ser una persona, laidPersona se puede incluir en las tablas como se muestra arriba.

Page 18: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 18

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

Nunca diseñe usando tablas con tuplas del mismotipo:

AlumnosSistemas, AlumnosMecanica, etc.AulasQuimica, AulasCienciasBasicas, etc.

Propende a redundancia si las políticas de la escuelapermiten que un alumno se inscriba en 2 carreras oun aula se usa para clases en diferentes carreras.

Page 19: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 19

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

Al diseñar una tabla, debe analizarse que posiblesvalores tendrá cada uno de los atributos.

Para una tupla y un atributo determinado, solopodrá haber un valor.

Si las condiciones obligan a que haya más de unvalor, debe crearse otra tabla para ese atributo.

En seguida se muestra un ejemplo.

Page 20: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISCIng. Felipe Alanís González - ITD - 20

Tabla PERSONAS

Tabla TELEFONOSPERSONAS

Si se solicita una lista ordenada de los números telefónicos y junto a cada número el nombre de la persona ¿Cuál de los dos esquemas permite una consulta más simple?

Page 21: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 21

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

Todas las tablas deben tener una llave primaria(PRIMARY KEY) y al menos una llave única (UNIQUE).

La llave primaria debe ser una Identidad (Atributoautoincremental mantenido por el DBMS). Ejemplo IdAlumno, IdMaestro, IdMateria.

La llave UNIQUE debe ser uno o más atributos quedistinga a cada una de las tuplas de las demás.

Page 22: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 22

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

Las tablas deben contener solo atributos con dominio atómico.

Dominio Conjunto de Valores Válidos.

Dominio Atómico Todos sus elementos se consideran indivisibles.

Ejemplo Tabla ALUMNOS: La fecha es una excepción (los DBMS’s y los lenguajes

de programación contienen métodos para extraer laspartes de esos atributos, además las fechas debenvalidarse como un solo atributo).

Page 23: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 23

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

Práctica

Antes de leer las recomendaciones de las páginas siguientes, diseñar el esquema (nombres de las tablas, listas de atributos y dominios) de las tablas necesarias para representar los siguientes objetos o eventos:

• Computadoras• Asesorías de Alumnos a Alumnos.

Page 24: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 24

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

Nombres de los objetos en general (tablas, atributos, vistas, procedimientos almacenados, etc.)

• Se debe limitar la longitud de los nombres a 20 y tratar de evitar dígitos como parte del nombre.

• Nunca use espacios (aunque el DBMS lo permita). • Trate de evitar guiones bajos (mejor use

NotacionPascal).• Los nombres de los atributos generalmente deben

ser palabras en singular.

Page 25: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 25

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

• Evite abreviaciones, ya que se puede malinterpretar el nombre. Por ejemplo, no use Dom en lugar de Domicilio.

• Evite acrónimos, puede haber diferentes significados para algunos de ellos, o ser poco claros, por ejemplo: CP.

Page 26: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 26

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

Nombres de las Tablas

• Es conveniente usar Prefijos ya que permiten organizar las tablas de acuerdo a grupos relacionados o distinguirlas de otras tablas no relacionadas. Por ejemplo:

• las tablas de Servicios Escolares se podrían llamar: escAlumnos, escMaestros, escGrupos, etc.

• Las de Contabilidad: contCuentas, contPolizas, etc.

Page 27: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 27

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

• Tablas que resultan de asociaciones entre otras tablas, es útil asignarles nombres que indiquen la cardinalidad (E-R), por ejemplo: escGruposMaestro, el nombre implica N:1

• Las tablas relacionadas entre si deben llevar primero el nombre de la tabla principal para que aparezcan juntas en la interfaz del DBMS y el DBA las identifique rápidamente. Por ejemplo, escAlumnos, escAlumnosCarrera, escAlumnosContactos, escAlumnosGrupos, etc.

Page 28: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 28

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

Columnas• Cuando asigne los nombres, tenga siempre

en mente que ya se sabe que son miembros de la tabla, por ejemplo: la tabla Personas, debe tener un atributo llamado Nombrepero nunca NombrePersona. Excepción: las llaves PRIMARIAS, como se “exportan” a otras tablas, deben denominarse: IdPersona, IdAlumno o IdMaestro(llaves Identidad Autoincrementales).

Page 29: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 29

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

• Cuando en la misma tabla se encuentra más de una vez la misma llave foránea, por ejemplo, en Reticula, es conveniente nombrarlas IdMateriaAnt, IdMateriaSig, etc., o simplemente IdAnterior, IdSiguiente, etc. O contraviniendo una de las primeras recomendaciones, IdMateria1, IdMateria2.

Page 30: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 30

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

• Denominar los nombres de los atributos booleanos con nombres como: DadoDeBaja, TienePermiso, etc.

• Atributos que son tipo fecha u hora deben llevar en el nombre la palabra “fecha” u “hora”, por ejemplo:FechaFinContrato, HoraSalida, etc.

Page 31: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller B. Datos ISC Ing. Felipe Alanís González - ITD - 31

1.2 Las mejores prácticas de diseño de Bases de Datos Relacionales.

• Atributos que representan tiempo añadir al nombre del atributo, la unidad de medida. DiasCredito, MaxMinutosRetraso, DuracionSegundos, etc.

• Para evitar nombres largos, elimine preposiciones: DiasCredito en vez de DiasDeCredito.

Page 32: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 32

1.3 Instalación de un DBMS.

1. Instalar el servidor de MySQL (DBMS).

Page 33: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 33

1.3 Instalación de un DBMS.

2. Instalar MySQL Workbench (Interfaz).

Page 34: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 34

1.3 Instalación de un DBMS.

3. Instalar SQL Server 2014 Express.4. Instalar SQL Server Management Studio.

(Disponibles en www.felipealanis.com)

Instale la versión que corresponda al tamaño de la palabra de su Sistema Operativo (32/64 bits).

Page 35: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 35

1.4 Creación del esquema de una Base de Datos

Las instrucciones que conoceremos forman parte del Núcleo de SQL estándar (en realidad son instrucciones DDL pero es una error histórico decir que pertenecen a SQL).

La publicación más reciente del estándar es SQL:2016, por portabilidad es importante verificar que los comandos SQL cumplan con el estándar. En seguida hay algunas ligas interesantes para verificar las expresiones SQL/DDL:

https://developer.mimer.com/sql-validator-99/

https://www.eversql.com/sql-query-optimizer

Page 36: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 36

1.4 Creación del esquema de una Base de Datos

Para crear las tablas de su esquema utilice, inicialmente, indistintamente las interfaces:

Línea de Comandos de MySQL o MySQL Workbench. Sqlcmd de Sql Server y SQL Server Management Studio.

Lo anterior para que conozca los diferentes ambientes de trabajo.

La primera etapa de la implementación de una Base de Datos es el diseño y creación del esquema.

Page 37: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 37

1.4 Creación del esquema de una Base de Datos

TallerBD1 es el nombre, que tendrá la Base de Datos que vamos a crear para nuestros ejemplos, los DBMS’sgeneralmente pueden administrar mas de una Base de Datos (aunque create database no es un estándar).

create database TallerBD1use TallerBD1

Hace que la Base de Datos TallerBD1 sea el esquema por omisión (todas las expresiones que escribamos a partir de aquí, se referirán a la Base de Datos TallerBD1.

Page 38: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 38

1.4 Creación del esquema de una Base de Datos

Integridad de Entidad

El establecimiento de llaves unique (también llamadascandidatas) para cada tabla, consigue lo que se conocecomo Integridad de Entidad (contribuye a impedirduplicidad por errores de los usuarios, por ejemplo, evitarque una persona quede registrada dos o mas veces en unamisma tabla de la Base de Datos).

Mientras mas llaves unique posea una tabla, mayor certezade integridad se logrará.

Page 39: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 39

MySQL

create table Alumnos(IdAlumno int auto_increment primary key,NumControl char(10) unique,Nombre char(40),FechaNacimiento date,Sexo char(15))

1.4 Creación del esquema de una Base de Datos

Page 40: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 40

SQL Server

create table Alumnos(IdAlumno int identity primary key,NumControl char(10) unique,Nombre char(40),FechaNacimiento date,Sexo char(15))

1.4 Creación del esquema de una Base de Datos

Page 41: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 41

Integridad Referencial

La definición de una llave primaria para cadatabla, es indispensable para establecer laintegridad referencial.

La integridad referencial es muy importante paraevitar que haya información incompleta en la Basede Datos.

1.4 Creación del esquema de una Base de Datos

Page 42: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Integridad Referencial SQL SERVER

create tablePagosAlumnos(IdPagosAlum int

identityprimary key,

IdAlumno intreferences Alumnos,concepto char(15),fecha date,importe numeric(10,2) )

Tabla Alumnos

IdAlumno Control Nombre FechaNac Sexo

1 48040001 Rico Mc Pato 15/11/1900 Masculino

2 76040155 Minnie Mouse 02/06/1928 Femenino

3 76040161 Mickey Mouse 01/04/1928 Masculino

Tabla PagosAlumnos

IdPagosAlum IdAlumno Concepto Fecha Importe

1 1 Inscripción 02/08/1948 1.25

2 1 Inscripción 10/08/1949 1.25

3 1 Constancia 05/12/1949 0.10

4 1 Inscripción 11/08/1950 1.25

5 2 Inscripción 15/08/1976 50.00

6 2 Inscripción 05/08/1977 100.00

7 3 Inscripción 15/08/1976 50.00

8 3 Inscripción 15/08/1976 50.00

9 3 Inscripción 03/08/1977 100.00

10 3 Constancia 22/10/1977 2.00

1.4 Creación del esquema de una Base de Datos

Todas las tablas deben tener al menos una llave única. Observe que en la tabla PagosAlumnos existe la posibilidad de que haya tuplas iguales. Asumamos que se determina en la escuela que debe haber un nuevo atributo, llamado referencia.

En la tabla PagosAlumnos, IdAlumno, es Llave Foránea

Page 43: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Integridad Referencial MySQL

create tablePagosAlumnos(IdPagoAlumno intauto_incrementprimary key,IdAlumno int,concepto char(15),fecha date,importe numeric(10,2),foreign key (idAlumno)

referencesAlumnos(idAlumno)on delete

no actionon update

no action, ……. )

Tabla Alumnos

Tabla PagosAlumnos

IdPagosAlum IdAlumno Concepto Fecha Importe

1 1 Inscripción 02/08/1948 1.25

2 1 Inscripción 10/08/1949 1.25

3 1 Constancia 05/12/1949 0.10

4 1 Inscripción 11/08/1950 1.25

5 2 Inscripción 15/08/1976 50.00

6 2 Inscripción 05/08/1977 100.00

7 3 Inscripción 15/08/1976 50.00

8 3 Inscripción 15/08/1976 50.00

9 3 Inscripción 03/08/1977 100.00

10 3 Constancia 22/10/1977 2.00

IdAlumno Control Nombre FechaNac Sexo

1 48040001 Rico Mc Pato 15/11/1900 Masculino

2 76040155 Minnie Mouse 02/06/1928 Femenino

3 76040161 Mickey Mouse 01/04/1928 Masculino

1.4 Creación del esquema de una Base de Datos

Todas las tablas deben tener al menos una llave única. Observe que en la tabla PagosAlumnos existe la posibilidad de que haya tuplas iguales. Asumamos que se determina en la escuela que debe haber un nuevo atributo, llamado referencia.

Page 44: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 44

1.4 Creación del esquema de una Base de Datos

Usando las interfaces visuales de SQL Server(SQL Server Management Studio) y de MySQL(Workbench), pueden crearse o modificarselas tablas de manera mas sencilla.

Añada el atributo Referencia a la tablaPagosAlumnos usando la interfaz visual de talmanera que pueda construir una llave únicapara la tabla.

Page 45: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 45

1.4 Creación del esquema de una Base de Datos

Page 46: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 46

1.4 Creación del esquema de una Base de Datos

Page 47: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 47

El Núcleo del SQL estándar, considera una manera sencilla deimplementar las restricciones de dominio (check constraint).

Se puede añadir como elemento del create, un elemento como el siguiente:

check (Sexo in ( 'Masculino' , 'Femenino' ))

Añada a las tablas anteriores, mediante el SSMS y MySQLWorkbench, la restricción para los atributos Sexo y Concepto.

1.4 Creación del esquema de una Base de Datos

Page 48: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 48

1.4 Creación del esquema de una Base de Datos

MySQL 6 aunque soporta sintácticamente la restricción check, no está implementada, por lo que no realiza la verificación como se espera al momento de añadir o modificar tuplas.

Una buena forma de resolver este problema, es estableciendo Integridad Referencial hacia una tabla que contenga los valores válidos para ese atributo (en seguida se estuiará la forma de hacerlo).

Page 49: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

1.4 Creación del esquema de una Base de Datos

Inserte las tuplas que se muestran en las diapositivas para cada tabla usando las interfaces de SQL Server Management Studio o MySQL Workbech según corresponda.

Page 50: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

50

create table Alumnos(IdAlumno int auto_increment primary key,sexo char(10), ……, ………,foreign key (sexo) references

DominioGenero(Genero)on delete no action

on update cascade, ……. )

create table DominioGenero(Genero char(10) primary key )

Tabla Alumnos Tabla DominioGenero

IdAlumno Control Nombre FechaNac Sexo

1 48040001 Rico Mc Pato 15/11/1900 Masculino

2 76040155 Minnie Mouse 02/06/1928 Femenino

3 76040161 Mickey Mouse 01/04/1928 Masculino

Integridad Referencial(como reemplazo para Check)

Compruebe el comportamiento de onupdate cascade, cambiando en la tabla DominioGenero, los valores de las tuplasFemeninoMujer y MasculinoHombre y

consultando la tabla Alumnos

1.4 Creación del esquema de una Base de Datos

Es el nombre del atributo en la tabla subordinada

Page 51: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 51

.Siendo A la tabla dominante (donde id es primaria) y B la tabla subordinada (donde id es foránea):

No action significa: Si se intenta borrar o modificar una tupla en A y

tiene equivalentes en B, no se ejecutará ninguna acción.

Cascade significa: Si se intenta borrar o modificar una tupla en A y

tiene equivalentes en B, la acción se ejecutará también para las tuplas de B

Integridad Referencial

1.4 Creación del esquema de una Base de Datos

Page 52: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Integridad Referencial SQL SERVER

Tabla AlumnosIdAlumno Control Nombre FechaNac Sexo

1 48040001 Rico Mc Pato 15/11/1900 Masculino

2 76040155 Minnie Mouse 02/06/1928 Femenino

3 76040161 Mickey Mouse 01/04/1928 Masculino

Tabla PagosAlumnosIdPagosAlum IdAlumno Concepto Fecha Importe

1 1 Inscripción 02/08/1948 1.25

2 1 Inscripción 10/08/1949 1.25

3 1 Constancia 05/12/1949 0.10

4 1 Inscripción 11/08/1950 1.25

5 2 Inscripción 15/08/1976 50.00

6 2 Inscripción 05/08/1977 100.00

7 3 Inscripción 15/08/1976 50.00

8 3 Inscripción 15/08/1976 50.00

9 3 Inscripción 03/08/1977 100.00

10 3 Constancia 22/10/1977 2.00

1.4 Creación del esquema de una Base de Datos

• Crear la tabla DominioConceptos.

• El único atributo de esa tabla será llave primaria, pero no identidad.

• Añada integridad referencial entre PagosAlumnos y la nueva tabla a través del atributo Concepto.

• Cambie la regla de update a cascade y compruebe lo que sucede en la tabla PagosAlumnos al cambiar uno de los valores de la tabla DominioConceptos.

Page 53: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 53

1.4 Creación del esquema de una Base de DatosCreación de Índices (SQL Server)

Cuando establecemos llaves primarias y unique, se crean tablasde índices para poder hacer las verificaciones correspondientes,sin embargo, adicionalmente se pueden crear otras tablas deíndices para que ciertas consultas tomen menos tiempo deejecución al manipular grandes cantidades de datos.

create table Alumnos(IdAlumno int identity primary key,NumControl char(8) unique, Nombre char(40),FechaNac date,index IxNom (Nombre),index IxFNac (FechaNac) )

Page 54: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISCIng. Felipe Alanís González -ITD- 54

create table Alumnos(IdAlumno int auto_increment primary key,NumControl char(8) unique,Nombre char(40),FechaNac date,index (Nombre),index (FechaNac) )

1.4 Creación del esquema de una Base de DatosCreación de Índices (MySQL)

Page 55: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 55

SQL SERVER

Añadir una columna con restricción

ALTER TABLE Alumnos ADD Genero CHAR(10)CHECK (GENERO='MASCULINO' ORGENERO='FEMENINO')

1.5 Modificación al esquema de una Base de Datos

Page 56: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 56

SQL SERVER

Añadir una restricción a una columna

alter table Proveedoresadd constraint ValidOrientacioncheck (Orientacionin ('Norte', 'Sur', 'Oriente', 'Poniente'))

Eliminar una restricciónalter table Proveedoresdrop constraint ValidOrientacion

1.5 Modificación al esquema de una Base de Datos

Page 57: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 57

MySQL

Modificar una columna de una tabla

ALTER TABLE AlumnosMODIFY COLUMN Nombre char(50)

Eliminar una columna de una tabla

ALTER TABLE AlumnosDROP COLUMN Domicilio

1.5 Modificación al esquema de una Base de Datos

Page 58: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 58

SQL SERVER

Modificar una columna de una tabla

ALTER TABLE AlumnosALTER COLUMN Nombre char(50)

Eliminar una columna de una tabla

ALTER TABLE AlumnosDROP COLUMN Domicilio

1.5 Modificación al esquema de una Base de Datos

Page 59: Unidad 1 - felipealanis.org ITD/Taller de Bases de Datos/Apuntes/Unidad... · Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 1.1 Conceptos Fundamentales de BD. 1.2

Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 59

SQL SERVER / MySQL

Eliminar una tabla

DROP TABLE Alumnos

Eliminar una Base de Datos

DROP DATABASE Prueba

1.5 Modificación al esquema de una Base de Datos