Sesion 09

download Sesion 09

of 9

description

sesion de fundamentos de programacion

Transcript of Sesion 09

  • Docente: Ing. Vctor Cumpa Santisteban

    TIPOS DE DATOS Y ESTRUCTURA DE TABLAS

    Como ya sabemos las tablas son los objetos que almacenan los datos. A la hora de disear una base de datos, se debe hacer un estudio de que tablas sern necesarias y que tipo de datos van a almacenar. Al disear la tabla es obligatorio evaluar las columnas que vamos a aadir, el tipo de dato para cada columna, y la longitud mxima si es necesaria. TIPOS DE DATOS

    Los tipos de datos indican que valores se pueden almacenar en una determinada columna. En Sql Server tenemos los siguientes tipos de datos fundamentales:

    Tipo de dato: Descripcin

    binarios Nmeros hexadecimales.

    carcter Combinaciones de letras, smbolos y nmeros.

    Unicode Cualquier carcter que cumpla el estndar unicode

    fecha y hora Fechas, horas...

    numricos Permiten positivos, negativos, enteros, decimales y fraccionales.

    moneda Valores monetarios positivos y negativos.

    usuario Tipos de datos definidos por el usuario.

    especiales Cualquiera que no se pueda ubicar en los tipos mencionados.

    DATOS BINARIOS

    Dentro de este grupo fundamental encontramos los siguientes tipos.

    Tipo de dato: Caractersticas.

    binary Tamao mximo de 8 KB para sus filas.

    varbinary Los datos varan sus dgitos hexadecimales hasta 8 KB

    image

    Datos binarios de cualquier longitud superior a 8 KB, entre estos datos podemos encontrar documentos de Word, imgenes (jpeg, bmp, gif). Hay que ser muy precavidos al utilizarlo para no incrementar innecesariamente el tamao de la base de datos.

    CLASE 9:

  • Docente: Ing. Vctor Cumpa Santisteban

    DATOS CARACTER

    Tipos de datos disponibles para este grupo:

    Tipo de dato: Caractersticas.

    char Longitud fija no superior a 8 Kb

    varchar Longitud variable no superior a 8 Kb.

    text Caracteres ASCII con longitud superior a 8 Kb.

    En este mismo grupo se pueden situar los tipos de datos para caracteres unicode. Que seran nchar, nvarchar y ntext. DATOS DE FECHA Y HORA

    En este grupo podemos utilizar los siguientes tipos:

    Tipo de dato: Caractersticas.

    datetime Intervalo: 01/01/1753 - 31/12/9999, se necesitan 8Kb para almacenar este tipo de dato.

    smalldatetime Intervalo: 01/01/1900 - 06/06/2079, se necesitan 4 Kb de capacidad para este tipo.

    DATOS NUMRICOS

    Tipos de utilizados:

    Tipo de dato: Caractersticas.

    bigint Intervalo: -2^63 y 2^63-1. Capacidad: 8 bytes.

    int Intervalo: -2.147.483.648 y 2.147.483.647. Capacidad: 4 bytes.

    smallint Intervalo: -32.768 a 32.767. Capacidad: 2 bytes.

    tinyint Intervalo: 0 a 255: Capacidad: 1 byte

    decimal o numeric

    Datos que almacenan hasta el dgito menos significativo de los decimales.

    float y real Conocidos como numricos aproximados o de coma flotante, almacenan tantos decimales como permita el sistema binario.

    DATOS MONETARIOS

    Los datos monetarios almacenan hasta un mximo de 4 decimales.

    Tipo de dato: Caractersticas.

    money Intervalo: -922.337.203.685.477,5808 y 922.337.203.685.477,5807. Capacidad: 8 bytes.

    smallmoney Intervalo: -214.748,3648 y 21.748,3647 Capacidad: 4 bytes.

  • Docente: Ing. Vctor Cumpa Santisteban

    TIPOS DE DATOS ESPECIALES

    En SQL Server podemos encontrar una serie de datos especiales.

    Tipo de dato: Caractersticas.

    timestamp o rowversion

    Nmero creciente en binario que almacena

    bit Representa valores TRUE o FALSE, YES o NO, 1 0

    uniqueidentifier Nmero hexadecimal de 16 Bytes que identifica como nica una fila entre muchas.

    sql_variant Cualquier tipo de datos permitido, excepto txt, ntext, timestamp)

    table Almacena resultados para ms adelante procesarlos.

    CREACION DE TABLAS Y MODIFICAR UNA TABLA

    Lo primero que debemos hacer es desplegar la base de datos sobre la que vamos a crear las tablas, una vez desplegadas vemos diferentes carpetas que almacenan distintos tipos de objetos. Una de estas carpetas es la carpeta Tables, pulsando con el botn derecho y seleccionando la opcin New Table.

    Al seleccionar new table, se abre una nueva pestaa con la siguiente ventana, donde podemos configurar todas las propiedades de la tabla.

  • Docente: Ing. Vctor Cumpa Santisteban

    Punto 1: En esa zona podemos indicar las caractersticas fundamentales de una columna, su nombre, tipo de dato, longitud y si permite o no almacenar valores nulos.

    Punto 2: Es un punto ms donde configurar la posibilidad de almacenar valores nulos.

    Punto 3: Asigna una columna con la propiedad IDENTITY. Con esta propiedad, el campo ser un tipo numrico que aumenta su valor automticamente. El valor se va incrementando segn se vayan aadiendo registros a la tabla, el valor de incremento y el valor de inicio pueden ser indicado mediante las propiedades Identity Increment e Identity Seed.

    Si pulsamos con el botn derecho sobre una de las columnas, nos muestran un men para poder configurar las restricciones de cada columna:

    Punto 4: Set primary key: Asigna la restriccin clave primaria a la columna seleccionada. Podemos reconocer una columna como clave primaria si aparece un pequeo icono con forma

    de llave a su izquierda.

    Punto 5: Relationships: Establece las relaciones entre tablas, creando la columna como clave fornea o FOREIGN KEY

    Punto 6: Indexes/Keys: Configuramos la columna con la restriccin UNIQUE.

  • Docente: Ing. Vctor Cumpa Santisteban

    Punto 7: Restricciones CHECK.

    Una vez definidas las columnas de la tabla, almacenamos los cambios e introducimos un nombre para identificar la tabla. Para realizar cualquier modificacin de una tabla una vez almacenada, debemos seleccionar la tabla con el botn derecho y pulsar la opcin Modify del men. Esto nos llevar de nuevo a la misma ventana de creacin de tablas, para modificar las propiedades que estimemos necesarias. Por ltimo, tenemos que ver como introducir datos directamente a nuestras tablas, para ello pulsando con el botn derecho sobre la tabla y elegimos la opcin Open Table.

    Al seleccionar Open Table, nos aparece una ventana para ir ingresando los datos y creando nuestras filas.

    RESTRICCIONES: CONCEPTO Y TIPO DE RESTRICCIONES

    RESTRICCIONES Y VALORES PERMITIDOS

    Uno de los aspectos ms esenciales a cuidar al disear las tablas de datos son las restricciones, valores predeterminados y valores nulos. Por lo tanto, al crear nuestras tablas debemos evaluar los valores vlidos y asegurar la integridad de los datos. Para garantizar la integridad de los datos SQL Server nos ofrece los siguientes mtodos mediante restricciones:

    Restriccin: Funciones:

    PRIMARY KEY

    Esta restriccin en una de las columnas (o varias) asegura que gracias a ella la fila sea nica. Recibe el nombre de clave principal o primaria, Los valores nulos no estn permitidos para este tipo de restriccin

    FOREIGN KEY Aseguran y establecen un vnculo entre los datos de dos tablas relacionadas. Reciben el nombre de clave externa o fornea.

  • Docente: Ing. Vctor Cumpa Santisteban

    UNIQUE Aseguramos que no tengamos valores duplicados en columnas que no sean claves primarias.

    CHECK Limita los valores permitidos.

    DEFAULT Las columnas deben contener un valor, aunque sea nulo (NULL)

    NULL La columna acepta valores NULL.

    REFERENCE Especifica los valores de datos que son aceptables para actualizar una columna y que estn basados en valores de datos localizados en una columna de otra tabla.

    Para usar las restricciones se debe hacer siguiendo una lgica de trabajo para no caer en errores inesperados y cumplir las reglas marcadas. En una tabla slo est permitido colocar una columna con clave primaria (PRIMARY KEY) y lgicamente, no aceptar valores NULL. En el momento de asignar a una columna la restriccin de clave primaria, SQL Server genera un ndice nico para esta columna, y el acceso o bsquedas a esta columna ser notablemente ms rpido. Por norma general una columna FOREIGN KEY o varias suelen estar vinculadas a columnas PRIMARY KEY de otra tabla.

    Debes tener muy claro que un valor NULL significa que no hay una entrada de dato. No es ni un cero, ni un blanco, ni tan siquiera una cadena de caracteres de longitud cero (""). Hace referencia a un valor desconocido o inexistente. No es aconsejable permitir valores NULL porque aaden complejidad a las estructuras de las tablas y complica las consultas. Si no permitimos valores NULL, se garantiza mejor la integridad de datos, si utilizamos claves primarias, no permite por defecto valores NULL.

    CREACION DE DIAGRAMAS

    El objetivo principal que se busca al relacionar tablas es el conseguir no tener datos repetidos o redundantes. Las relaciones entre tablas se consiguen a travs de vnculos establecidos entre una columna o varias de las tablas a relacionar. Las relaciones se asocian a columnas clave y suelen identificarse con el mismo nombre. Por norma general (no siempre es as), la relacin vincula la clave principal de una tabla (recuerda que la clave principal asegura que un registro sea nico) con la clave externa (FOREIGN KEY) de la otra tabla. Existen los siguientes tipos de relacin:

    Iconos Tipo de relacin

    -------------- Relacin uno a varios.

    -------------- Relacin varios a varios.

    --------------- Relacin uno a uno.

    La ms utilizada es la primera de ellas, Relacin uno a varios. Que indica que un mismo registro aparece varias veces vinculado en otra tabla y que sin embargo asegura que el registro de la tabla destino slo aparece una vez. La relacin varios a varios, permite que la tabla1 tenga varios registros que coincidan en la tabla2 y viceversa. Para estas relaciones se utilizan tablas auxiliares "puente" entre las relaciones de las tablas.

  • Docente: Ing. Vctor Cumpa Santisteban

    Y por ltimo la relacin uno a uno, exige que una fila de la tabla1 slo pueda coincidir con una fila de la tabla2 y viceversa. Este tipo de relacin a penas es utilizado.

    Los diagramas de bases de datos se almacenan en la carpeta DataBase Diagram, para crear un nuevo diagrama pulsamos con el botn derecho y seleccionamos New DataBase Diagram. Una vez abierta la ventana para los diagramas, podemos pulsar con el botn derecho en una zona libre de la ventana y se nos muestra un men para realizar la mayora de operaciones posibles:

    CREACION DE BASE DE DATOS POR CODIGO CREACION DE TABLAS POR CODIGO

    La principal tarea de las sentencias de definicin de datos es creacin de nuevas tablas, la sintaxis de estas sentencias es: CREATE TABLE nombre_tabla (nombre_columna tipo restricciones) [restricciones (nombre_columna)] Esta sentencia crea una nueva tabla en la base de datos en la que estemos trabajando, el nombre de la tabla creada ser el que introducido despus de la palabra reservada TABLE. El nombre de los campos se introduce entre parntesis, especificando el tipo de dato y las restricciones para esa columna. Las restricciones pueden especificarse junto al tipo separndola con un espacio en blanco, o bien al final indicando la restriccin y colocando entre parntesis el nombre de la columna a la que se aplica esa restriccin.

    EJERCICIO DE CLASE Vamos a crear una Base de Datos con el nombre de BDPrctica, para lo cual vamos a crear una tabla mediante cdigo con el nombre de Empleado, para introducir los empleados de una empresa, estimamos necesarias las siguientes columnas:

    codEmpleado: De tipo entero y clave principal de nuestra tabla. Nombre: De tipo varchar con tamao 50, no admite valores nulos Apellidos: Del mismo tipo que nombre, no admite valores nulos. Salario: De tipo float, no admite valores nulos. CodOficina: De tipo int que almacenar el cdigo de la oficina donde trabaja el empleado,

    no admite valores nulos.

    El siguiente cdigo crea una tabla con estas caractersticas:

    Ahora creamos una tabla llamada Oficinas donde interesan las siguientes columnas: codOficina, clave primaria de la tabla de tipo entero. Direccion, de tipo varchar y tamao 50.

  • Docente: Ing. Vctor Cumpa Santisteban

    Localidad, de tipo varchar y tamao 50. Provincia, de tipo varchar y tamao 50.

    MODIFICACIN DE TABLAS.

    Para realizar modificaciones en tablas tenemos la sentencia ALTER TABLE que tiene la siguiente sintaxis: ALTER TABLE nombre_tabla ADD atributo tipo NULL Siguiendo con nuestro ejemplo, vamos a modificar la tabla empleados para introducir un nuevo campo para almacenar la fecha de nacimiento del empleado:

    Para completar nuestro sistema relacional, es lgico que creemos una relacin entre la tabla Empleados y la tabla Oficinas. Para ello modificaremos las tablas aadiendo esta relacin, para esto la columna codOficina de la tabla Empleados debe tener la restriccin FOREIGN KEY para modificarla como clave fornea:

    Con la sentencia CONSTRAINT indicamos que vamos a aadir una nueva restriccin, seguido indicamos el nombre de la relacin que vamos a crear, con la sentencia FOREGIN KEY le damos entre parntesis las columnas que sern las claves forneas de la relacin, seguido indicamos la sentencia REFERENCES para indicar cual ser la tabla con la que vamos a relacionar y le damos entre parntesis la columna con la clave primaria con la que enlazaremos. Despus nuestro diagrama queda:

    CREATE TABLE EMPLEADOS

    (CODEMPLEADO INT PRIMARY KEY,

  • Docente: Ing. Vctor Cumpa Santisteban

    NOMBRE VARCHAR(50) NOT NULL,

    APELLIDOS VARCHAR(50) NOT NULL,

    SALARIO FLOAT NOT NULL,

    CODOFICINA INT NOT NULL,

    FOREIGN KEY(CODOFICINA) REFERENCES OFICINAS(CODOFICINA))

    ELIMINACIN DE TABLAS. La sentencia DROP TABLE permite eliminar tablas de la base de datos. Su sintaxis es la siguiente: DROP TABLE nombre_de_tabla DROP TABLE EMPLEADO