Tbd_isc_unidad1.pdf

  • Uploaded by: Paoo Resendiz
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Tbd_isc_unidad1.pdf as PDF for free.

More details

  • Words: 6,429
  • Pages: 83
Nombre de la asignatura:

Taller de Bases de Datos

Carrera:

Ingeniería en Sistemas Computacionales

Clave de la asignatura:

SCA-1025

SATCA:

0-4-4

Tema o Unidad 1: Lenguaje de Definición de Datos (DDL) Subtema 1.1 Instalación de un SGBD

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

COMPETENCIAS ESPECIFICAS El alumno:  Utiliza procedimientos de instalación de SGBD para diversas plataformas.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CONTENIDO PROCEDIMENTAL Al terminar la siguiente lección el alumno podrá:  Identificar los elementos que conforman a un SGBD.  Identificar las características para la evaluación adecuada de un SGBD.  Comparar las ventajas y desventajas de los diversos SGBD.  Identificar los requerimientos de instalación y configuración de los SGBD.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CONTENIDO CONCEPTUAL

Requerimientos del SGBD Instalación del SGBD Configuración del SGB Resumen

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

¿Qué es un SGBD?  Los Sistemas de Gestión de Bases de Datos (SGBD), son aplicaciones que permiten a los usuarios definir, crear y mantener las bases de datos y proporcionan un acceso controlado a la misma.  Los SGBD es la aplicación que interactúa con los usuarios de los programas y las bases de datos.  Algunos de los SGBD más conocidos son: SQL, DB2, SLQ/DS, ORACLE, INGRES, INFORMIX, SYBASE, PARADOX, DBASE, ACCESS, FOXPRO, R, RM/T y RM/V2, MySQL.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Objetivos del SGBD  Definir la base de datos mediante el Lenguaje de Definición de Datos (DDL), el cual permite especificar la estructura, tipo de datos y las restricciones sobre los datos, almacenándolo todo en la base de datos.  Separar la descripción y manipulación de los datos, permitiendo un mayor entendimiento de los objetos, además de flexibilidad de consulta y actualización de los datos (Datos-Metadatos).  Permitir la inserción, eliminación, actualización, consulta de los datos mediante el Lenguaje de Manipulación de Datos (DML), lo que permite resolver el problema que presentan los sistemas de archivos, donde hay que trabajar con un conjunto fijo de consultas o la necesidad de tener muchos programas de aplicaciones. Existen dos tipos de programas de manejo de datos, los cuales se diferencian por la forma en que acceden a los datos.

Continua… Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Objetivos del SGBD  Lenguajes procedurales: Manipulan la base de datos, registro a registro y se deben especificar las operaciones a realizar para obtener los datos resultado.  Lenguajes no procedurales: Manipulan la base de datos en conjuntos de registros y se especifican qué datos deben obtenerse como resultado sin plantear las forma de hacerlo. El lenguaje no procedural más utilizado es SQL (Structure Query Languaje) que se ha convertido en un estándar y el lenguaje por defecto de los SGBD relacionales.  Proporcionar acceso controlado a la base de datos.  Seguridad: Los usuarios no autorizados no pueden acceder a la base de datos.  Integridad: Mantiene la integridad y consistencia de la base de datos.

Continua… Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Objetivos del SGBD  Control de concurrencia: Permite el acceso compartido a la base de datos.  Control de recuperación: Restablece la base de datos después de producirse un fallo de software o hardware.  Diccionario de datos: Contiene la descripción de los datos de la base de datos y es accesible por el usuario.  Proporcionar un mecanismo de vistas, que permita a cada usuario tener su propia vista o visión de la base de datos. El DDL nos permite definir las vistas como subconjuntos de la base de datos, permitiendo:  Un nivel de seguridad que excluye datos para que no sean vistos por determinados usuarios.  Permiten que los usuarios vean los datos en el formato deseado.  Eliminar la redundancia de datos, establecer una mínima duplicidad en los datos y minimizar el espacio en disco utilizado.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Arquitectura del SGBD Usuarios

Servidor BD’s B’sD’s

Tablas de usuario

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Diccionario de datos

Arquitectura del SGBD  Servidor de BD´s: Es el software (SGBD), que tiene la capacidad de administrar distintas bases de datos.  Diccionario de datos: Es un archivo que contiene metadatos, es decir, "datos acerca de los datos". Este archivo se consulta antes de leer o modificar los datos reales en el sistema de base de datos. En otras palabras contiene la información de las diferentes bases de datos que contenga el SGBD y la definición de las tablas.  Usuarios: Existen 3 tipos de usuarios. Usuario Final: Usa la Base de Datos realizando consultas, actualizaciones de datos etc., a través de un lenguaje de consulta, o a través de un programa mediante el lenguaje de consulta el usuario queda libre para poder hacer cualquier operación y mediante un programa el usuario queda restringido a lo que en este se estableció. Segundo Usuario: Programador de aplicaciones, desarrolla los sistemas necesarios para permitir la posibilidad de comunicación o extensión de información desde la Base de Datos. Administrador de la Base de Datos (DBA): Dentro de sus funciones podemos mencionar.  Mantener en forma optima y eficiente la base de datos controlando procedimientos, instalaciones, procesos, etc.,  Realizando funciones de auditoria, manejando la seguridad de la Base de Datos, además de crear usuarios y accesos permitidos. Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Arquitectura del SGBD SGBD => ITSJR

Servidor SII BD ALUMNOS BD FINANCIEROS

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Servidor IDIOMAS

BD IDIOMAS

Arquitectura del SGBD Base de Datos BD ALUMNOS

Tabla: Alumnos noctrol nomalu 1023 JAVIER 4567 VICENTE 6789 FERNANDO 1234

FERNANDO

apepatalu LOPEZ FERNANDEZ DE TAPIA

apematalu CHABELO

FERNANDEZ

Tabla: Materias

CONIN

id_materia 1 2 3

nommat PROGRAMACION BASE DE DATOS GRAFICACION

SANCHEZ

4

MATEMATICAS

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Arquitectura del SGBD Base de datos: Es un conjunto exhaustivo no redundante de datos estructurados organizados independientemente de su utilización y su implementación en máquina, accesibles en tiempo real y compatibles con usuarios concurrentes con necesidad de información diferente y no predicable en tiempo. Ventajas de las BD´s:  Se evita la inconsistencia de la información.  Se evita la redundancia de la información  Mantiene la integridad en los datos.  Los datos pueden ser compartidos por varias aplicaciones o usuarios.  Se mantienen niveles de seguridad en los datos. Desventajas de las BD´s:  Al perder o dañarse la base de datos se hace irrecuperable las tablas, informes, consultas, etc., que en ella existen.  Al tener una base de datos con demasiada información su acceso es lento ya que varios usuarios pueden estar haciendo uso de esta. Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Arquitectura del SGBD Estructura general de una tabla

Columna

nocontrol

nomalu

------------- ----------------

apepatalu

---------------------

1023 JAVIER

LOPEZ

4567 VICENTE

FERNANDEZ

6789 FERNANDO

DE TAPIA

1234 FERNANDO

FERNANDEZ

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Campo Registro Dato

Arquitectura del SGBD Tabla de usuario: Se refiere al tipo de modelado de datos, donde se guardan los datos recogidos por un programa, el cual esta definido por:  Registro: Es el conjunto de datos relacionados pertenecientes a una entidad. Este conjunto de datos es una colección finita, ordenada y posiblemente heterogénea en sus elementos que son tratados como una unidad.  Columna: Es un conjunto de valores de un mismo tipo de dato.  Campo: Es un área específica de un registro, usada para representar una clase particular de información la cual define una característica de un individuo u objeto.  Dato: Es la representación de un hecho o una entidad; conjunto de caracteres con algún significado.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Requerimientos del SGBD  Cada fabricante de los SGBD, determina los requerimientos mínimos y recomendados que el SGBD requiere para su instalación y ejecución:  Software (sistema operativo).  Hardware (espacio en disco duro y memoria RAM).

 Cada SGBD, tiene capacidades diferentes en relación a:  Número de accesos concurrentes que soporta.  Número de bases de datos que soporta.  Número de tablas por base de datos.  Capacidad de almacenamiento por base de datos.  Capacidad de memoria cache para atender peticiones de usuario.  Existen SGBD, que:  Requieren el pago de licencias para su uso (servidor y usuarios).  Son considerados como software libre.

Continua… Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Requerimientos del SGBD  Requerimientos del sistema de base de datos a crear, que se derivan de análisis de requerimientos definidos por el usuario:  Cantidad de datos a almacenar.  Necesidades de accesos concurrentes.  Capacidad para el control de reglas del negocio.  Capacidad para el control de seguridad e integridad de la información.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CONTENIDO CONCEPTUAL

Requerimientos del SGBD Instalación del SGBD Configuración del SGB Resumen

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Instalación del SGBD  La instalación en cada SGBD, es diferente de acuerdo a su nivel de seguridad y control en los datos que se desee configurar para las bases de datos que este controle.  La mayoría de SGBD, cuentan con instaladores automáticos, en donde el usuario o administrador de la base de datos debe proporcionar algunos parámetros como:  Tamaño de dispositivos de almacenamiento a utilizar, para el control de datos y el log de transacciones.  Tamaño de página para la manipulación de datos.  Dirección lógica donde se almacenen los diferentes componentes del SGBD.  Nombre del servidor a crear para el control de la base de datos.  Direcciones de protocolo de comunicación a utilizar.

Continua… Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Instalación del SGBD  Para realizar la instalación se deba asegurar que se cumple con todos y cada uno de los requisitos determinados por el fabricante del SGBD así como este cubrirá las necesidades de administración de los datos a contener en el base de datos.

 Se deberá asegurar que el SGBD, que se esta instalando cumpla con los requerimientos legales para su uso:  Pago de licencias de servidor.  Pago de licencias para usuario.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CONTENIDO CONCEPTUAL

Requerimientos del SGBD Instalación del SGBD Configuración del SGB Resumen

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Configuración del SGBD  Gran parte de la configuración del SGBD se realiza en el momento de su instalación, como ya describió en los apartados anteriores.  Una vez instalado el SGBD, se deben definir los servidores de base de datos a utilizar, las base de datos que contendrá cada servidor y los esquemas de las bases de datos, es decir, la tablas de las bases de datos, para posteriormente pasar a la fase de explotación de la base de datos.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

ACTIVIDADES Actividad 1-1: Instalación y Configuración de SGBD´s.  En esta actividad usted podrá:  Identificar los requerimientos y características generales de SGBD.  Instalar y configurar distintos SGBD.  Conocer el entorno de la consola de comandos del SGBD.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CONTENIDO CONCEPTUAL

Requerimientos del SGBD Instalación del SGBD Configuración del SGB Resumen

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Resumen  Un SGBD, esta conformado por:  Usuarios, quienes crean, administran y explotan la base de datos.  Software, permite mantener los controles sobre la de la base de datos (Sistema operativo, aplicación, servidor de base de datos).  Hardware, equipo físico para el uso de software y almacenamiento de los datos.  Las bases de datos son utilizadas para el almacenamiento de información de diferentes tipos de sistemas como de transacciones, inteligencia artificial, sistemas expertos, medicina, educación, entre otros.  La instalación y configuración de los SGBD, dependen básicamente de sus características predefinidas por su fabricante y el rendimiento que este tenga para el control y seguridad sobre los datos que almacene.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Nombre de la asignatura:

Taller de Bases de Datos

Carrera:

Ingeniería en Sistemas Computacionales

Clave de la asignatura:

SCA-1025

SATCA:

0-4-4

Tema o Unidad 1: Lenguaje de Definición de Datos (DDL) Subtema 1.2 Creación del esquema de la base de datos

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

COMPETENCIAS ESPECIFICA El alumno:  Construye esquemas de base de datos para proyectar las necesidades de un cliente en base a las reglas sintácticas del lenguaje de definición de datos.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CONTENIDO PROCEDIMENTAL Al terminar la siguiente lección el alumno podrá:  Definir esquemas de base de datos en SQL.  Analizar y determinar los requerimientos de usuario.  Describir los tipos de datos que puede ser usados para definir las columnas de una tabla.  Crear tablas en un base de datos.  Modificar la definición de las tablas.  Borrar objetos en la base de datos creados por el usuario.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CONTENIDO CONCEPTUAL

Creación del esquema de la Base de Datos

Actualización modificación y eliminación del esquema de la Base de Datos Resumen

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Lenguaje de Definición de Datos (DDL)  Las instrucciones de DDL, son un subconjunto de sentencias SQL para crear, modificar o eliminar las estructuras de base de datos. Estas declaraciones tienen un efecto inmediato sobre la base de datos, y también se registra la información en el diccionario de datos.  Para crear una tabla, un usuario debe tener el permiso CREATE TABLE y un área de almacenamiento en el que la creación de objetos. El administrador de la base de datos utiliza los datos de Lenguaje de Control de Datos (DCL) declaraciones, que están cubiertos en una lección posterior, para otorgar privilegios a los usuarios.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Lenguaje de Definición de Datos (DDL) Otros comando  Para crear una bases de datos. Sintaxis: CREATE DATABASE nom_db  Para crear un índice. Sintaxis: CREATE INDEX nom_ind ON nom_tab (col,….)  Para crear vistas. Sintaxis: CREATE VIEW nom_vis AS sentencia_select

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Definiendo tablas  Una tabla, es un objeto de la base de datos que almacena datos en renglones y columnas.  Antes de crear una tabla, se debe diseñar su estructura:  Determinar el nombre de la tabla y sus columnas.  La elección de tipo de dato para cada columna.  Determinación de restricciones para cada columna.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Nombrando las tablas y columnas  Salvo indicaciones especificas del SGBD que se utilice, se recomienda que los nombres de las tablas y columnas que se crean en un SGBD cumplan con las siguientes reglas:  No usar más de 30 caracteres de longitud.  El primer carácter debe ser un alfabético.  Únicamente debe contener caracteres alfabéticos, numéricos o uno de los siguientes símbolos, _, $, #.  No duplicar el nombre.  No utilizar palabras reservadas del SGBD.  Utilice nombres descriptivos para las tablas y columnas.  Utilice el mismo nombre de columna para el mismo dato en diferentes tablas.

 Existen SGBD que soportan 255 caracteres para nombrar sus objetos.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Tipos de datos  Un tipo de dato es un atributo asignado a una columna que especifica el tipo de dato que se pude almacenar en la columna.  A la hora de elegir un tipo de dato se debe considerar que este:  Tenga la precisión deseada de los valores.  Pueda almacenar todos los posibles valores.  Tenga un almacenamiento eficiente.  Permita el crecimiento futuro.  Requiera el menor espacio de almacenamiento.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Tipos de datos  Hay que recordar que las reglas de negocio son requerimientos que la organización impone a los datos.  Los tipos de datos puede hacer cumplir las reglas de negocio para un fin determinado, como por ejemplo un alumno no puede tener una calificación negativa, entre 1 y 69 o superior a 100 por lo que se debe elegir un tipo de dato entero corto.  Los tipos de datos no se encuentran estandarizados entre los SGBD, aunque existen similitudes se recomienda conocer anticipadamente las características de estos antes de ser utilizados en la definición de un esquema de una base de datos.  Los tipos de datos que maneja cada SGBD, aunque pudiesen llamarse igual podrían tener diferentes características, como la longitud, precisión, bytes de almacenamiento, por lo que se recomienda que antes de iniciar con la asignación del tipo de dato, se debe conocer los tipos de datos que soporta el SGBD a utilizar así como sus propiedades de cada uno de ellos.  Para el SGBD MySQL se puede consultar los diferentes tipos de datos que soporta por medio de los siguientes comandos:  Sintaxis HELP DATA TYPES; -- Muestra un listado de los diferentes tipos de datos que soporta MySQL. HELP tipo_dato; -- Muestra las características especificas del tipo de datos consultado.  Ejemplo HELP INT; -- Mostrara la descripción y propiedades de tipo de datos int. Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Restricciones para columnas  Las restricciones de columnas son utilizadas para:  Hacer cumplir las reglas de negocio  Implementar la integridad en la información a nivel de tabla.  Seguridad referencial integral .

 Los tipos de restricciones comunes entre los SGBD son:  Null, Not Null.  Default.  Primary Key.  Foreign Key.  Check.  Una restricción puede ser creada al momento o después de la creación de una tabla.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Null, Not Null 

Un valor Null, representa un valor desconocido:  Para valores numéricos, Null no es igual que cero.  Para valores de carácter, Null no es igual a espacio en blanco.



Un valor Null no es considerado como menor, mayor o igual a cualquier otro valor.



Dos valores Null, no son considerados como iguales entre uno y otro.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Null, Not Null

Alumnos nocontrol

nomalu

apepatalu

1023

JAVIER

LOPEZ

4567

VICENTE

FERNANDEZ

apematalu CHABELO

fecnac 1940-12-23 1941-01-05

...

NOT NULL (Ninguna fila de esta columna puede contener valores nulos)

NULL (Cualquier fila de esta columna puede contener valor nulo)

 NULL, NOT NULL, permite restringir lo valores nulos en los datos. Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Null, Not Null  Definiendo restricciones Not Null en la columna:

CREATE TABLE alumnos (nocontrol VARCHAR(7) , nomalu VARCHAR(20) NOT NULL, apepatalu VARCHAR(20) NOT NULL, apematalu VARCHAR(20) NULL, rfc VARCHAR(13) NULL, fecnac DATE NOT NULL, status BIT NOT NULL) ENGINE = INNODB;

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Null, Not Null  Ejecutar los script  U2script1.sql, para crear la tablas alumnos.  U2script2.sql, para insertar registros validos.  U2script3.sql, para intentar insertar registros no validos.  El cliente mysql se usa normalmente de forma interactiva, sin embargo, es posible poner comandos SQL en un script y decirle a mysql que lea ese script.  Para ejecutar un script desde la ventana de comandos de mysql , se debe usar el comando SOURCE o \.  Ejemplo mysql> source c:\alumnos\Unidad2\U2script1.sq o mysql> \. c:\alumnos\Unidad2\U2script1.sql

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Default  Un Default, proporciona un valor para una columna dada, si no hay valor previstos para la columna durante un Insert.  Una columna únicamente puede tener un Default.  Un Default no puede ser usados en columnas de tipo identity, autoincrementales, etc.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Default Alumnos nocontrol

nomalu

apepatalu

apematalu

fecnac

1023

JAVIER

LOPEZ

CHABELO

1940-12-23

1

4567

VICENTE

FERNANDEZ

1941-01-05

1

Insertando registros 6789 1234

FERNANDO FERNANDO

DEAlmacena TAPIA ambos CONINregistros 1910-01-05 (status = 1) SANCHEZ FERNANDEZ 1990-01-05

 PRIMARY KEY: Campo o conjunto de campos que identifica de manera única a un registro, por lo que no pueden existir dos registros con la misma llave primaria. Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

status

Default  Definiendo restricciones Default en la columna:

CREATE TABLE alumnos (nocontrol nomalu apepatalu apematalu rfc fecnac status ENGINE =

VARCHAR(7), VARCHAR(20) NOT NULL, VARCHAR(20) NOT NULL, VARCHAR(20) NULL, VARCHAR(13) NULL, DATE NOT NULL, BIT NOT NULL DEFAULT 1) INNODB;

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Default  Ejecutar  U2script4.sql, para crear la tablas alumnos usando default  U2script5.sql, para insertar un registro donde no se envía el valor para status

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Primary Key PRIMARY KEY

Alumnos nocontrol

nomalu

apepatalu

apematalu

fecnac

status

1023

JAVIER

LOPEZ

CHABELO

1940-12-23

1

4567

VICENTE

FERNANDEZ

1941-01-05

1

Insertando registros 1023

   

JORGE RODRIGO

No lo almacena (nocontrol-1023 ya existe) FALCON SANCHEZ 1950-06-07 ARREOLA VACA 1970-10-23 No lo almacena (nocontrol es null)

1 1

Restricciones PRIMARY KEY Crea una clave principal de la tabla. Sólo una clave primaria puede ser creada para una tabla. La clave principal es una columna o conjunto de columnas, que identifica de forma única cada registro de una tabla.  Asegura que no hay una columna que forma parte de la clave principal puede contener un valor nulo.

Primary Key 

Definiendo restricción de Primary Key en la columna.

CREATE TABLE alumnos (nocontrol nomalu apepatalu apematalu rfc fecnac status ENGINE

VARCHAR(7) PRIMARY KEY, VARCHAR(20) NOT NULL, VARCHAR(20) NOT NULL, VARCHAR(20) NULL, VARCHAR(13) NULL, DATE NOT NULL, BIT NOT NULL DEFAULT 1) = INNODB;

 La PRIMARY KEY • De una sola columna pueden ser definidas a nivel de columna o de nivel de tabla. • De dos o mas columnas se crea a nivel de tabla. Nota: Un índice UNIQUE se crea automáticamente al definir una PRIMARY KEY.

Primary Key  Ejecutar  U2script6.sql, para crear la tablas alumnos.  U2script7.sql, para intentar insertar registros no validos.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Foreign Key

PRIMARY KEY

Materias

Alumnos

Id_materia nommat -------1 TALLERBD 2 FISICA ...

Nocontrol NOMALU …. ------ ---------- -------1023 JAVIER 3456 VICENTE ...

status 1 1

caralu FOREIGN KEY

nocontrol

id_materia

1023 3456 ...

1 2

calificacion

….

90 100

Insertando registro

7571 1 3456 87

100 80

No es almacenado * nocontrol--7571 no existe en la tabla alumnos

... ... Id_materia— 87 no existe en la tabla materias

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Foreign Key  Definiendo restricciones de Foreign Key en la columna:

CREATE TABLE caralu (nocontrol VARCHAR(7), id_materia INTEGER NOT NULL, calificacion TINYINT NOT NULL DEFAULT 0, semmat TINYINT NOT NULL, oportunidad TINYINT NOT NULL DEFAULT 1, PRIMARY KEY (nocontrol, id_materia), FOREIGN KEY (nocontrol) REFERENCES alumnos(nocontrol), FOREIGN KEY (id_materia) REFERENCES materias(id_materia) ) ENGINE = INNODB;



FOREIGN KEY: Define la columna o columnas de la tabla secundaria (hija).



RERERENCES: Identifica la tabla y la columna o columnas de la tabla primaria (maestra).

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Foreign Key  Ejecutar  U2script8.sql, para crear las tablas alumnos, materias y caralu.  U2script9.sql, para insertar registros validos.  U2script10.sql, para intentar insertar registros no validos.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Check CREATE TABLE caralu ( nocontrol VARCHAR(7), id_materia INTEGER NOT NULL, calificacion TINYINT NOT NULL DEFAULT 0, semmat TINYINT NOT NULL, oportunidad TINYINT NOT NULL DEFAULT 1, fecreg DATE NOT NULL, PRIMARY KEY (nocontrol, id_materia), FOREIGN KEY (nocontrol) REFERENCES alumnos(nocontrol), FOREIGN KEY (id_materia) REFERENCES materias(id_materia), CONSTRAINT calificacion_ck CHECK (calificacion = 0 OR calificacion BETWEEN 70 AND 100) ) ENGINE = INNODB;



Una columna puede tener varias restricciones CHECK.



Un CHECK no puede hacer referencia a otros valores en otras filas.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Check  Ejecutar  U2script11.sql, para crear las tablas alumnos, materias y caralu.  U2script12.sql, para intentar insertar registros no validos.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Unique La restricción UNIQUE asegura que todos los valores en una columna sean distintos.

CREATE TABLE clientes (SID integer Unique, Last_Name varchar (30), First_Name varchar(30) ) ENGINE = INNODB;

 

La columna “SID” no puede incluir valores duplicados. Note que una columna que se especifica como clave primaria también puede ser única. Al mismo tiempo, una columna que es única puede o no ser clave primaria.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Eligiendo el motor de almacenamiento El motor de almacenamiento (storage-engine) se encarga de almacenar, manejar y recuperar información de una tabla. Los motores más conocidos son MyISAM e InnoDB. La elección de uno u otro dependerá mucho del escenario donde se aplique. En la elección se pretende conseguir la mejor relación de calidad acorde con nuestra aplicación. Si necesitamos transacciones, claves foráneas y bloqueos, tendremos que escoger InnoDB. Por el contrario, escogeremos MyISAM en aquellos casos en los que predominen las consultas SELECT a la base de datos. InnoDB dota a MySQL de un motor de almacenamiento transaccional (conforme a ACID) con capacidades de commit (confirmación), rollback (cancelación) y recuperación de fallos. Estas características incrementan el rendimiento y la capacidad de gestionar múltiples usuarios simultáneos. Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Eligiendo el motor de almacenamiento MyISAM es el motor por defecto. Para crear una tabla InnoDB se debe especificar la opción ENGINE = InnoDB o TYPE = InnoDB en la sentencia SQL de creación de tabla. InnoDB • Soporte de transacciones • Bloqueo de registros • Permite tener las características ACID (Atomicity, Consistency, Isolation and Durability), garantizando la integridad de nuestras tablas. • Es probable que si nuestra aplicación hace un uso elevado de INSERT y UPDATE notemos un aumento de rendimiento con respecto a MyISAM. MyISAM • Mayor velocidad en general a la hora de recuperar datos. • Recomendable para aplicaciones en las que dominan las sentencias SELECT ante los INSERT / UPDATE. • Ausencia de características de atomicidad ya que no tiene que hacer comprobaciones de la integridad referencial, ni bloquear las tablas para realizar las operaciones, por lo tanto,mayor velocidad.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CREACIÓN DE TABLAS  Sintaxis MySQL: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(] LIKE old_tbl_name [)]; create_definition: column_definition | [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) | KEY [index_name] [index_type] (index_col_name,...) | INDEX [index_name] [index_type] (index_col_name,...) | [CONSTRAINT [symbol]] UNIQUE [INDEX] [index_name] [index_type] (index_col_name,...) | [FULLTEXT|SPATIAL] [INDEX] [index_name] (index_col_name,...) | [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) [reference_definition] | CHECK (expr) Continua… Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CREACIÓN DE TABLAS  Nomenclatura de Sintaxis • • • •

Las palabras mayúsculas se utilizan para palabras reservadas. Las palabras cursivas para elementos proporcionados por el usuario. [ ] Se utilizan para denotar elementos opcionales. {opción1 | opcion2} Se utiliza para denotar un elemento necesario, con dos o más opciones.

 La sintaxis que se muestra es para el SGBD MySQL, versión 5.0.45, aunque es muy similar a la de otros SGBD se debe consultar la sintaxis del SGBD que se este utilizando.  Para crear una tabla en una base de datos, se debe tener permisos para crear la tabla de la base de datos.  Las únicas personas que puede eliminar una tabla de la base de datos son el dueño o el administrador.

Continua… Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CREACIÓN DE TABLAS  Sintaxis MySQL : column_definition: col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY] [COMMENT 'string'] [reference_definition] type: TINYINT[(length)] [UNSIGNED] [ZEROFILL] | SMALLINT[(length)] [UNSIGNED] [ZEROFILL] | MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL] | INT[(length)] [UNSIGNED] [ZEROFILL] | INTEGER[(length)] [UNSIGNED] [ZEROFILL] | BIGINT[(length)] [UNSIGNED] [ZEROFILL] | REAL[(length,decimals)] [UNSIGNED] [ZEROFILL] | DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL] | FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL] | DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL] Continua… Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CREACIÓN DE TABLAS  Sintaxis Mysql: type: | NUMERIC(length,decimals) [UNSIGNED] [ZEROFILL] | DATE | TIME | TIMESTAMP | DATETIME | CHAR(length) [BINARY | ASCII | UNICODE] | VARCHAR(length) [BINARY] | TINYBLOB | BLOB | MEDIUMBLOB | LONGBLOB | TINYTEXT [BINARY] | TEXT [BINARY] | MEDIUMTEXT [BINARY] Continua… Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CREACIÓN DE TABLAS  Sintaxis MySQL: type: | LONGTEXT [BINARY] | ENUM(value1,value2,value3,...) | SET(value1,value2,value3,...) | spatial_type index_col_name: col_name [(length)] [ASC | DESC] reference_definition: REFERENCES tbl_name [(index_col_name,...)] [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE] [ON DELETE reference_option] [ON UPDATE reference_option]

Continua… Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CREACIÓN DE TABLAS  Sintaxis MySQL: reference_option: RESTRICT | CASCADE | SET NULL | NO ACTION table_options: table_option [table_option] ... table_option: {ENGINE|TYPE} = engine_name | AUTO_INCREMENT = value | AVG_ROW_LENGTH = value | [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name] | CHECKSUM = {0 | 1} | COMMENT = 'string' | MAX_ROWS = value | MIN_ROWS = value | PACK_KEYS = {0 | 1 | DEFAULT} Continua… Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CREACIÓN DE TABLAS  Sintaxis MySQL: | DELAY_KEY_WRITE = {0 | 1} | ROW_FORMAT = {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT} | RAID_TYPE = { 1 | STRIPED | RAID0 } RAID_CHUNKS = value RAID_CHUNKSIZE = value | UNION = (tbl_name[,tbl_name]...) | INSERT_METHOD = { NO | FIRST | LAST } | DATA DIRECTORY = 'absolute path to directory' | INDEX DIRECTORY = 'absolute path to directory' select_statement: [IGNORE | REPLACE] [AS] SELECT ... (Some legal select statement)

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CREACIÓN DE TABLAS Usando subconsultas  Sintaxis MySQL: CREATE TABLE table [column(, column...)] AS subquery;

 Se puede crear una tabla y copiar sus registros mediante la combinación de la sentencia CREATE TABLE y el uso de subconsultas.  Debe coincidir con el número de columnas con el especificado en la subconsulta.

 Creación de una tabla y copiado de registros desde otra tabla. • Un segundo método para crear una tabla es la aplicación de subconsultas que tanto crear la tabla e copia los registros devueltos par la subconsulta. • La tabla se crea con los nombres de columna, y los registros recuperados por la sentencia SELECT se inserta en la tabla. • La definición de columna sólo puede contener el nombre de la columna y el valor predeterminado. • Si no se especifican las columna, los nombres de las columnas en la tabla son los mismos que los nombres de columna en la subconsulta.

Creación de tablas usando subconsultas  Sintaxis MySQL: CREATE TABLE personas AS SELECT nocontrol, CONCAT(apepatalu,’ ‘,apematalu,’ ‘,nomalu) AS alumno FROM alumnos; DESCRIBE personas; Field Type Null Default Extra --------- ---------- ------- -------- -----nocontrol varchar(7) NO alumno double YES

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Creación de tablas usando subconsultas  Ejecutar  U2script13.sql, para crear una tabla usando una subconsulta.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CONTENIDO CONCEPTUAL

Creación del esquema de la Base de Datos

Actualización modificación y eliminación del esquema de la Base de Datos Resumen

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Actualización. Modificación y eliminación del esquema de la base de datos  Después de crear las tablas o por mantenimiento a la base de datos, puede que tenga que cambiar su estructura de las tablas, ya que es necesario agregar o eliminar una columna o simplemente cambiar su definición. Esto de puede hacer mediante instrucciones del Lenguaje de Definición de Datos DDL. ALTER TABLE  Igualmente por cambio en el esquema de la base de datos, en ocasiones es necesario eliminar completamente una tabla. DROP TABLE

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Alter table  ALTER TABLE, es utilizado para la actualización de la definición de una tabla con la que se podrán agregar, modificar o borrar columnas en la tabla, entre otras opciones.  Sintaxis en MySQL: ALTER [IGNORE] TABLE tbl_name alter_specification [, alter_specification] ...

alter_specification: ADD [COLUMN] column_definition [FIRST | AFTER col_name ] | ADD [COLUMN] (column_definition,...) | ADD INDEX [index_name] [index_type] (index_col_name,...) | ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) | ADD [CONSTRAINT [symbol]] UNIQUE [index_name] [index_type] (index_col_name,...) Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Continua…

Alter table | ADD [FULLTEXT|SPATIAL] [index_name] (index_col_name,...) | ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) [reference_definition] | ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} | CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name] | MODIFY [COLUMN] column_definition [FIRST | AFTER col_name] | DROP [COLUMN] col_name | DROP PRIMARY KEY | DROP INDEX index_name | DROP FOREIGN KEY fk_symbol | DISABLE KEYS | ENABLE KEYS | RENAME [TO] new_tbl_name | ORDER BY col_name | CONVERT TO CHARACTER SET charset_name [COLLATE collation_name] Continua… Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Alter table | [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name] | DISCARD TABLESPACE | IMPORT TABLESPACE | table_options

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Agregando columna Alumnos

“…Se agrega una nueva columna a la tabla alumnos…”

Nueva columna

nocontrol nomalu apepatalu ------ ---------- -------1023 JAVIER LOPEZ 4567 VICENTE FERNANDEZ



tel

...

Alumnos nocontrolo nomalu apepatalu ------ ---------- -------1023 JAVIER LOPEZ 4567 VICENTE FERNANDEZ ...

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López



tel

Agregando columna Se adiciona la columna usando la siguiente instrucción. ALTER TABLE alumnos ADD COLUMN(tel varchar(15)); DESCRIBE alumnos; Field Type Null Default Extra --------- ---------- ------- -------- -----nocontrol varchar(7) NO … tel

varchar(15) YES

NULL

 Directrices para agregar una columna A UNA TABLA. • No se puede especificar en que posición de la tabla se agregue la columna, por default la agrega como última columna. • Si la tabla ya contiene registros, cuando se agrega una columna, la columna nueva es inicialmente nula para todas las filas ya existentes.

Agregando columna  Ejecutar  U2script14.sql, para agregar una columna a la tabla alumnos.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Modificando columna Se adiciona la columna usando la siguiente instrucción. ALTER TABLE MODIFY

alumnos nomalu VARCHAR(10);

DESCRIBE alumnos; Field Type Null Default Extra --------- ---------- ------- -------- -----nocontrol varchar(7) NO nomalu varchar(10) YES NULL … tel

varchar(15) YES

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

NULL

Modificando columna • Puede modificar una definición de columna mediante la instrucción ALTER TABLE con la cláusula de MODIFY. • La modificación de la columna pueden incluir cambios en tipo de datos de una columna, el tamaño y el valor por defecto. • Puede aumentar el ancho o la precisión de una columna numérica o disminuir el ancho de una columna si la columna contiene valores nulos o sólo si la tabla no tiene filas. • Cambiar el tipo de datos si la columna contiene valores nulos. • Convertir una columna CHAR con el tipo de datos VARCHAR o convertir una columna VARCHAR al tipo de datos CHAR si la columna contiene valores nulos o si no cambiar el tamaño. • Un cambio en el valor predeterminado de una columna sólo afecta a las inserciones posteriores a la mesa.

Modificando columna  Ejecutar  U2script15.sql, para modificar la longitud del tipo de dato en la columna nomalu de la tabla alumnos.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Borrando columna  Se borra una columna usando la siguiente instrucción. ALTER TABLE DROP

alumnos tel;

 Una vez que se elimina la columna se pierden los valores almacenados en ella.

 Sólo se puede borrar las columnas. • Si no es la llave primaria • Si no es parte de una llave foránea. • Si no es parte de un índice.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Borrando columna  Ejecutar  U2script16.sql, para borrar la columna tel a la tabla alumnos.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

Borrando tablas  DROP TABLE, es utilizado para el borrado de una tabla.

 Sintaxis en MySQL: DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

Ejemplo. DROP TABLE

    

alumnos;

Una vez que se ejecuta la instrucción los datos y la tabla son eliminados. Todas las transacciones pendientes se destruyen. Todos los índices relacionados con la tabla se borran. Sólo el creador de la tabla o un usuario con el privilegio puede eliminar una tabla. La instrucción DROP TABLE, una vez ejecutado, es irreversible.

Borrando tablas  Ejecutar  U2script17.sql, para borrar la tabla alumnos.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

ACTIVIDADES Actividad 2-1: Administración de esquema de una base de datos.  En esta actividad usted deberá:  Crear un esquema de base de datos, utilizando el Lenguaje de Definición de Datos (DDL) en un SGBD.

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

CONTENIDO CONCEPTUAL

Creación del esquema de la Base de Datos

Actualización modificación y eliminación del esquema de la Base de Datos Resumen

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

RESUMEN

Instrucción

Descripción

CREATE TABLE

Crea un tabla

ALTER TABLE

Modifica la estructura de una tabla

DROP TABLE

Borra la tabla y sus registros

Realizado por: Ing. María Patricia Uribe Rodríguez e Ing. Guillermo Badillo López

More Documents from "Paoo Resendiz"