Modelamiento de Base de Datos - IPLACEXcursos.iplacex.cl/CED/MBD4008/S5/ME_5.pdf 2 SEMANA 5...

34
www.iplacex.cl Modelamiento de Base de Datos UNIDAD Nº III

Transcript of Modelamiento de Base de Datos - IPLACEXcursos.iplacex.cl/CED/MBD4008/S5/ME_5.pdf 2 SEMANA 5...

  • www.iplacex.cl

    Modelamiento de Base de Datos UNIDAD Nº III

  • www.iplacex.cl

    2

    SEMANA 5

    Introducción a la idea

    Bienvenidos a la quinta semana de Modelamiento de Base de datos. En esta unidad

    vamos a implementar el modelo de base de datos para solucionar en forma eficiente

    los requerimientos de información de la organización. A continuación, veremos los

    aspectos generales del lenguaje SQL.

    En esta cápsula de aprendizaje veremos los siguientes temas para construir la base de

    datos:

    1. Creación y manejo de datos usando sentencias DDL.

    2. Creación de usuarios.

    3. Creación de privilegios.

    4. Creación de roles.

    Lenguaje de consulta estructurado (SQL)

    SQL es el lenguaje de consulta fundamental de los SGBD relacionales.

    SQL pretende ser un lenguaje que simula su escritura en lenguaje normal,

    de ahí que se le considere un lenguaje de cuarta generación (4GL).

    Consta de palabras especiales y de expresiones. Se trata de un lenguaje que

    intenta agrupar todas las funciones que se le pueden pedir a una base de datos,

    por lo que es el lenguaje utilizado tanto por administradores como por

    programadores o incluso usuarios avanzados.

    Es un lenguaje de tipo declarativo, se especifica qué es lo que desea realizar, no

    el cómo queremos realizarlo (el cómo es la pregunta de los lenguajes imperativos,

    como PL/SQL, C, C++ o Java).

  • www.iplacex.cl

    3

    SEMANA 5

    Los orígenes del SQL están ligados a los de las bases de datos relacionales. En

    1970 E.F. Codd propone el modelo relacional y asociado a este modelo un

    sublenguaje de acceso a los datos.

    Basándose en estas ideas, los laboratorios de IBM definen el lenguaje SEQUEL

    (Structured English QUEry Language) que más tarde sería ampliamente

    implementado por el SGBD experimental System R, desarrollado en 1977 también

    por IBM.

    Sin embargo, fue Oracle quien lo introdujo por primera vez en 1979 en un

    programa comercial. El SQL pasa a ser el lenguaje por excelencia de los diversos

    SGBD relacionales surgidos en los años siguientes y es por fin estandarizado en

    1986 por el ANSI (Instituto Nacional Americano de Estandarización). Al año

    siguiente este estándar es también adoptado por la

    ISO (Organización Internacional de

    Estandarización).

    En el año 1989 ANSI publicó una extensión de la

    norma para SQL denominada SQL-89.

    La siguiente versión de la norma fue en SQL-92

    seguida de SQL:1999 (compatible con Oracle).

  • www.iplacex.cl

    4

    SEMANA 5

    Usando SQL para comunicarse con un RDBMS

    Usando SQL se puede conectar al Servidor Oracle.

    SQL tiene las siguientes ventajas:

    Eficiente.

    Fácil de entender y usar.

    Funcionalmente completo, ya que con SQL se

    pueden definir, recuperar y manipular datos en las

    tablas.

    Elementos de un código desarrollado en SQL

    Comandos SQL: DML, DDL, DCL etc.

    Palabras reservadas: hacen referencia a un elemento SQL individual: SELECT,

    FROM, WHERE, JOIN..

    Cláusulas: es una parte de una sentencia SQL: SELECT employee_id, last_name

    Sentencia: es una combinación de dos o más cláusulas: SELECT employee_id,

    last_name FROM employees;

    Operadores: permiten crear expresiones

    complejas: Pueden ser aritméticos (+, -, /,

    *, …) o lógicos (>,

  • www.iplacex.cl

    5

    SEMANA 5

    Significado del formato de las sentencias SQL

    El formato de las sentencias SQL significan lo siguiente:

    [] (corchetes): los corchetes sirven para encerrar texto que NO es obligatorio en el

    comando, es decir para indicar una parte opcional.

    | (barra vertical): este símbolo indica opción, es decir que se puede elegir entre

    varias opciones.

    ... (puntos suspensivos): indica que se puede repetir el texto anterior en el

    comando continuamente (significaría y así sucesivamente).

    { } (llaves): indican opciones mutuamente exclusivas pero obligatorias. Es decir,

    opciones de las que sólo se puede elegir una opción, pero de las que es obligatorio

    elegir una.

  • www.iplacex.cl

    6

    SEMANA 5

    Las reglas a seguir para construir una sentencia SQL válida son:

    Las sentencias SQL NO son Case-Sensitive.

    Las sentencias SQL pueden ser una o más

    líneas.

    Las palabras reservadas no pueden ser

    abreviadas o continuar en líneas diferentes.

    Las cláusulas son normalmente escritas en líneas

    diferentes.

    Las sentencias SQL deben terminar con un punto

    y coma (;).

    Idealmente las palabras reservadas deben ser

    escritas en mayúsculas; todas las otras palabras,

    como nombre de columnas y tablas en

    minúsculas.

  • www.iplacex.cl

    7

    SEMANA 5

    Organizando la idea

    Bienvenidos a la quinta semana de Modelamiento de Base de datos. En

    esta unidad vamos a implementar el modelo de base de datos para

    solucionar en forma eficiente los requerimientos de información de la

    organización. A continuación veremos como es la arquitectura de servidor

    de la base de datos Oracle.

    Arquitectura de un Servidor de Base de Datos Oracle

    Un Servidor de Base de Datos Oracle consta de una Instancia y una Base de

    Datos.

    Una instancia Oracle es un medio de acceso a una base de datos Oracle por la

    que siempre abre una única base de datos, la cual está formada por estructuras

    de procesos en segundo plano y de memoria. Una instancia Oracle se compone

    de la estructura de la memoria SGA (Área Global del Sistema) y de los procesos

    background que se utilizan para gestionar una base de datos.

    La Base de Datos almacena y recupera la información relacionada. Una base de

    datos Oracle tiene una estructura lógica y una física. La estructura física de la

    base de datos es el juego de archivos del sistema operativo en la base de datos.

    La estructura física incluye tres tipos de archivos: Archivos de control, Archivos

    de datos y Archivos redo log online.

  • www.iplacex.cl

    8

    SEMANA 5

  • www.iplacex.cl

    9

    SEMANA 5

    Detallando la idea

    Bienvenidos a la tercera semana de Modelamiento de Base de datos.

    En esta unidad vamos a construir un modelo relacional normalizado

    para solucionar en forma eficiente los requerimientos de información de

    la organización. A continuación, trabajaremos con la creación y manejo

    de objetos en mi base de datos (sentencia DDL).

    Sentencias SQL

  • www.iplacex.cl

    10

    SEMANA 5

    Tipos de datos para las columnas de la tabla

  • www.iplacex.cl

    11

    SEMANA 5

    Modificando una tabla

    Se utiliza la sentencia ALTER TABLE para agregar una columna nueva, modificar una

    columna existente, definir un valor por defecto para la nueva columna y/o eliminar una

    columna.

    Agregar una columna:

    Modificar una columna:

    Eliminar una columna:

  • www.iplacex.cl

    12

    SEMANA 5

    Agregando una Columna a la Tabla

    Ejemplo:

    Para agregar una columna a la tabla se debe utilizar la cláusula ADD.

    La nueva columna pasa a ser la última de la tabla.

  • www.iplacex.cl

    13

    SEMANA 5

    Modificando la columna de una Tabla

    Se puede cambiar el tipo de dato, el tamaño y el valor por defecto de una columna usando

    la cláusula MODIFY. Un cambio en el valor por defecto de una columna sólo afecta a las

    inserciones de filas posteriores en la tabla.

    Ejemplo:

  • www.iplacex.cl

    14

    SEMANA 5

    Eliminación de una Tabla Se eliminan todos los datos y la estructura de la tabla, se valida cualquier transacción pendiente

    (porque tiene un COMMIT implícito), se borran todos los índices y no se puede realizar

    ROLLBACK de la sentencia DROP TABLE (deshacer la sentencia).

    Cambio de nombre de un objeto

    Para cambiar el nombre de una tabla, una vista, una secuencia o un sinónimo, se debe utilizar la

    sentencia RENAME. Para modificar el nombre de un objeto, debe ser el propietario.

  • www.iplacex.cl

    15

    SEMANA 5

    Usuarios predefinidos de una BD Oracle

    Al momento de crear una Base de Datos Oracle se crean dos usuarios: SYS y SYSTEM.

    El usuario SYS:

    Es el dueño de todas las tablas y vistas del diccionario de la Base de Datos (tablas

    que guardan información propia de la Base de Datos.

    Posee todos los privilegios (permisos) para efectuar cualquier actividad en la Base

    de Datos.

    Para conectarse a la Base de Datos con este usuario se debe como SYSDBA.

    El usuario SYSTEM:

    Se utiliza para efectuar tareas rutinarias en la Base de datos como creación de

    usuarios, asignar permisos a usuarios etc.

    Posee menos privilegios que el usuario SYS.

  • www.iplacex.cl

    16

    SEMANA 5

    Creación de un usuario en la BD Oracle

    Para conectarnos con un servidor Oracle necesitamos un modo de acceso que incluye

    los permisos que dispondremos durante la conexión; estos permisos se definen a partir

    de un nombre de usuario.

    Un USUARIO es un identificador necesario para acceder a una base de datos. Un

    usuario es un conjunto de permisos que se aplican a una conexión de base de datos. Un

    usuario es además propietario de los objetos que cree.

    Antes de crear un usuario de base de datos se debe crear una conexión a la Base de

    Datos (como usuario SYSTEM) a través de una herramienta de desarrollo como

    SQLDeveloper

  • www.iplacex.cl

    17

    SEMANA 5

    Una vez creada la conexión a la Base de Datos ésta aparecerá al lado izquierdo

    Posteriormente en Otros Usuario elegir Crear Usuario

  • www.iplacex.cl

    18

    SEMANA 5

    Además, se les deben asignar los permisos o privilegios básicos para que el usuario

    pueda trabajar en la Base de Datos.

    Los privilegios: especifican qué operaciones puede realizar un usuario y sobre qué

    objetos de la base de datos tiene autorización, es decir, qué tarea puede realizar

    con esos objetos y si puede emitir determinadas instrucciones. Algunos privilegios

    de sistema son create session, create table, create user, alter user, drop user,

    create profile, create trigger, create rol.

    Un rol de base de datos: es una agrupación de permisos de sistema y de objeto.

    Los permisos controlan el acceso a los distintos objetos de una base de datos; pueden

    concederse a nivel de usuario o a nivel de rol. En el ejemplo, se asignan los Roles

    Connect y Resource. Además al usuario se le debe asignar cuanto espacio de la base

    de datos tendrá como máximo para poder crear sus objetos en el área que se le asignó

    (tablespace)

  • www.iplacex.cl

    19

    SEMANA 5

    Una vez creado el nuevo usuario ya está en condiciones para poder crear objetos.

    Cuando el usuario posea objetos propios tomará el nombre de Esquema.

    Esquema HR

    Existe un esquema de ejemplo HR que se utilizará para efectuar algunas lecciones de

    SQL. El Modelo de tablas de este esquema es el que se muestra en la imagen:

  • www.iplacex.cl

    20

    SEMANA 5

    Demostrando la idea

    A continuación, trabajaremos con procedimiento

    almacenado y función almacenada, en donde

    utilizaremos SQL Developer para demostrar lo

    aprendido en esta unidad. Veremos paso a paso la

    creación de usuario, creación de roles, creación de

    privilegios y creación y manejo de objetos con

    sentencias DDL.

    Para comenzar, abre sqldeveloper.exe.

    Para crear un nuevo usuario, primero debemos conectarnos con un servidor Oracle de

    modo que tengamos los permisos suficientes para crear el nuevo usuario.

    Haz clic en el icono “+” para crear la nueva conexión.

  • www.iplacex.cl

    21

    SEMANA 5

    Creamos una nueva conexión “conSystem”, donde el usuario será “System” y la

    contraseña es la que creaste al instalar SQL Developer. Recuerda probar la conexión

    antes de conectarte a ella.

    Escribe los campos necesarios, haz clic en “probar.

    Dentro de la conexión nos dirigimos a la carpeta “Otros Usuarios”

    Haz clic derecho en “Otros Usuarios” y selecciona la opción Crear Usuario.

  • www.iplacex.cl

    22

    SEMANA 5

    Le daremos el nombre y contraseña del nuevo usuario.

    El nombre será “miUsuario” y la contraseña será “1234”.

    Luego hacemos clic en aplicar.

    Ahora seleccionaremos los tablespace.

    Haz clic en “Tablespace por Defecto”.

  • www.iplacex.cl

    23

    SEMANA 5

    Ahora seleccionaremos los tablespace.

    Haz clic en “USERS”.

    Luego, haz clic en “Tablespace Temporal” y elige la opción TEMP.

    Finalmente, haz click en el botón Aplicar

  • www.iplacex.cl

    24

    SEMANA 5

    Aparecerá un mensaje de error

    Haz clic en “Aceptar”.

    Buscamos el usuario creado en Otros usuarios.

    Haz clic en “Otros Usuarios”.

  • www.iplacex.cl

    25

    SEMANA 5

    Buscamos el usuario creado y hacemos clic derecho.

    Haz clic derecho en “MIUSUARIO” y elige la opción Editar Usuario.

    En la pestaña Roles Otorgados seleccionaremos CONNECT y RESOURCE, de esta

    manera el usuario podrá conectarse y utilizar algunos recursos de la base de datos.

    Marca las casillas de Otorgado y Valor por defecto de “CONNECT y RESOURCE”, luego

    haz clic en Cuotas.

  • www.iplacex.cl

    26

    SEMANA 5

    En la pestaña Cuotas seleccionamos Ilimitado para la Tablespace USERS, esto indicará

    que no tendrá tope de memoria para trabajar con tablas.

    Seleccionar ilimitado y clic aplicar.

    Entonces crearemos una nueva conexión con la información del nuevo usuario creado.

    Haz clic en “+” para crear una nueva conexión.

  • www.iplacex.cl

    27

    SEMANA 5

    Entonces crearemos una nueva conexión con la información del nuevo usuario creado.

    Nombre conexión: miUser, Usuario: miUsuario, Contraseña: 1234.

    Haz clic en probar.

    Luego, haz click en el botón Conectar.

    Nos conectamos a conexión creada y vemos que aparece una pestaña llamada hoja de

    trabajo.

    Aquí es donde irán los comandos SQL como la creación y modificación de tablas.

    Creamos una tabla persona, la cual tiene un rut y un nombre.

    Para esto colocamos:

    CREATE TABLE PERSONAS

  • www.iplacex.cl

    28

    SEMANA 5

    Podemos ver que la tabla PERSONAS se ha creado, pero el nombre de la tabla no esta

    acorde de lo aprendido en modelamiento, debería ser PERSONA y no PERSONAS, por

    lo que borramos la tabla.

    Ingresa:

    DROP TABLE PERSONAS;

    Luego haz clic en PLAY para ejecutar el Script

    Podemos ver que indica que

    la tabla fue borrada con éxito.

    Luego borramos la letra “S” del script anterior para que quede PERSONA y volvemos a

    ejecutar el Script.

    Borrar la S de PERSONAS

    Luego haz clic en PLAY para ejecutar el Script

  • www.iplacex.cl

    29

    SEMANA 5

    Una persona también tiene un apellido paterno, un apellido materno y a veces una

    mascota, pero en vez de borrar la tabla y crearla de nuevo con estos campos, vamos a

    alterar la tabla agregándolos.

    Recuerda que solo se puede alterar la tabla agregando un campo a la vez, además al

    final de cada comando de alter table debe ir un punto y coma para señalar que ahí

    termina este comando y que el próximo comando es ajeno a el.

    Para esto escribimos:

    ALTER TABLE PERSONA ADD apellido_paterno VARCHAR2 (20);

    Luego haz clic en PLAY para ejecutar el Script

  • www.iplacex.cl

    30

    SEMANA 5

    Vemos que se ha alterado la tabla persona, ahora agregaremos el campo

    apellido_materno.

    Para esto escribimos:

    ALTER TABLE PERSONA ADD apellido_materno VARCHAR2 (20);

    Luego haz clic en PLAY para ejecutar el Script

    Vemos que se ha alterado la tabla, ahora agregaremos el campo mascota.

    Para esto escribimos:

    ALTER TABLE PERSONA ADD mascota VARCHAR2 (20);

    Luego haz clic en PLAY para ejecutar el Script

  • www.iplacex.cl

    31

    SEMANA 5

    Vemos que se ha alterado la tabla persona correctamente.

    Como el rut no es un número, debido al guion debemos cambiar el tipo de dato de

    NUMBER a VARCHAR2.

    Para esto escribimos:

    ALTER TABLE PERSONA MODIFY rut VARCHAR2 (15);

    Luego haz clic en PLAY para ejecutar el Script

  • www.iplacex.cl

    32

    SEMANA 5

    Vemos que se ha alterado la tabla persona correctamente y el tipo de dato ha cambiado.

    Un campo de clave primaria no puede ser nulo, es por eso por lo que agregamos la

    propiedad NOT NULL al campo rut.

    Para esto escribimos:

    ALTER TABLE PERSONA MODIFY rut NOT NULL;

    Luego haz clic en PLAY para ejecutar el Script

  • www.iplacex.cl

    33

    SEMANA 5

    Se ha alterado la tabla PERSONA.

    Haz terminado de trabajar con procedimiento almacenado y función almacenada.

    Los puntos revisados en esta cápsula de aprendizaje fueron:

    Paso a paso en creación de usuarios.

    Paso a paso en creación de privilegios y roles.

    Paso a paso para la creación y manejo de objetos con sentencias DDL.

    ¡Bien hecho!

  • www.iplacex.cl

    34

    SEMANA 5