Conceptos de Bases de Datos Relacionales Parte 1 - PowerPoint PPT Presentation

conceptos de bases de datos relacionales parte 1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Conceptos de Bases de Datos Relacionales Parte 1 PowerPoint Presentation
Download Presentation
Conceptos de Bases de Datos Relacionales Parte 1

play fullscreen
1 / 139
Conceptos de Bases de Datos Relacionales Parte 1
195 Views
Download Presentation
reed-dale
Download Presentation

Conceptos de Bases de Datos Relacionales Parte 1

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Conceptos de Bases de Datos RelacionalesParte 1

  2. Servidor de Bases de Datos • Servidor que es capaz de administrar múltiples bases de datos

  3. Base de Datos • Una base de datos relacional almacena conjuntos de datos que están relacionados unos con otros. • Las Tablas son la estructura primaria de una base de datos relacional. • Las tablas están constituidas por: • Columnas (columns) • Filas (rows)

  4. Objetos de una Base de Datos • Tables, almacena datos • Views, simplifica y/o restringe acceso a datos • Indexes, mejora acceso a la base de datos • Defaults, define valores por omisión • Rules, restinge valores que se aceptan • Stored procedures, comandos sql y de control con llamado explícito • Triggers, comandos sql y de control con llamado implícito

  5. SQL (Structured Query Language) • SQL lenguaje usado para definir, manipular, y controlar bases de datos relacionales • Definido por ANSI (American National Standards Institute) • Comandos SQL se pueden dividir en tres categorías: • DDL (Data definition language) • create, alter, drop • DML(Data manipulation language) • select, insert, update, delete • DCL(Data control language) • grant, revoke

  6. Extensiones SQL • Son cosas adicionales al standard ANSI SQL • Están diseñadas para simplificar la administración de las bases de datos • FIPS flagger • Útiles para los usuarios que solamente usanANSI-compliant SQL • Envía mensajes a los usuarios cuando ejecutan un comando que no cumpla • Sintaxis: • set fipsflagger { on | off }

  7. System Procedures • Procedimientos del Sistema instalados automáticamente que facilitan la manipulación de los Servidores de Bases de Datos • En el caso de Sybase y SQL-servidor, todos los system procedures comienzan con con “sp_” • Ejemplos: • sp_help da información de todos los objetos en una base de datos • sp_who da información de los usuarios que están trabajando en el servidor de bases de datos

  8. Relación Cliente/Servidor • Cliente – Programa que acepta requerimientos de un usuario y los envía a un servidor; también recibe respuestas del servidor y se las muestra al usuario • Servidor – Programa que procesa requerimientos del cliente y le retorna resultados

  9. Conexión al Servidor • Para conectarse a un servidor a través de un cliente se necesita: • Un login válido • Un password válido • Una conexión simple se conoce como “session” • Base de datos default: • Base de datos que se coloca en uso cuando un usuario se conecta al servidor • Determinada según el perfil del usuario • Características fijadas por el Administrador

  10. Funcionalidad en el Cliente • Un cliente debe proporcionar las siguientes facilidades: • Iniciar el cliente y conectarse al servidor • Ejecutar comandos y batches • Navegar por una base de datos • Editar comandos • Crear y ejecutar scripts • Ejemplos: • Cliente isql • Cliente Advantage • Cliente Oracle • Cliente Manager de Microsoft

  11. Creación de Tablas

  12. Diseño de Tablas • Una Tabla es un objeto de base de datos que almacena datos en filas y columnas • Antes de crear una tabla, se debe diseñar su estructura: • 1. Darle nombre a la tabla y a cada columna • 2. Seleccionar un tipo de dato para cada columna • 3. Escoger las propiedades de cada columna

  13. Datatype • Un tipo de datos (datatype) es un atributo asignado a una columna que especifica el tipo de información que puede almacenarse en esa columna

  14. Seleccionar Datatypes • Para seleccionar el datatype de una columna: • 1. Determinar el conjunto posible de valores • 2. Determinar la precisión requerida • 3. Encontrar el datatype que: • Pueda guardar todos los posibles valores • Proporcione la exactitud y precisión requeridas • Use eficientemente el almacenamiento • Facilite el futuro crecimiento

  15. Categorías de Datatypes • Números exactosNúmeros con exactitud y precisión predecibles • Números aproximadosNúmeros con valores dependiendo de exactitud y precisión del almacenamiento • MoneyValores para pesos • Date y timeValores de fechas y horas • CharacterPara strings caracteres • BinaryInformación binaria (como imágenes, video y bits)

  16. Ejemplos de Datatypes por Categorías • Números exactosinteger, numeric (p,s), decimal (p,s) • Números aproximadosfloat (p), real, double precision (dependientes de máquina) • Moneymoney • Date y timedatetime • Characterchar (n), varchar (n), text • Binarybit, binary, varbinary, image

  17. Datatypes definidos por el Usuario • Un datatype definido por el usuario es un datatype creado por el usuario de un datatype del sistema • Muy útil para asegurar consistencia de múltiples columnas que almacenan el mismo conjunto de valores

  18. Propiedades de las Columnas • Una columna puede tener una de las siguientes propiedades: • NULL • NOT NULL • IDENTITY • Si no se especifica, generalmente se asume NOT NULL

  19. Valores tipo NULL • Un NULL representa un valor desconocido o que no aplica • Para valores numéricos, NULL no es igual a 0 • Para caracteres, NULL no es igual a '' '' (caracter en blanco) • NULL no se considera considera menor que, mayor que, o igual a cualquier otro valor • Dos NULL no se consideran iguales

  20. Propiedades de NULL • Una columna con la propiedad NULL permite NULLs • Esto se conoce como nullable column • Una columna con la propiedad NOT NULL no permite NULLs • Una columna que no se le especifique esta propiedad asume que permite NULLs

  21. Propiedad IDENTITY • La propiedad IDENTITY hace que el sistema asigne automáticamente valores únicos a cada fila • Cuando se insertan datos en una tabla, el servidor automáticamente asigna un número secuencial a la columna que tiene la propiedad de IDENTITY

  22. Reglas para columnas con IDENTITY • Sólo puede existir una por tabla • Debe de ser de tipo numérico sin posiciones decimales • Ejemplo: numeric(5,0) • No se puede actualizar • No acepta valores tipo NULL • Inicia por default en 1 • Se puede asignar un valor de arranque

  23. Crear Tablas • Sintaxis Simplificada para create : • CREATE TABLE table_name ( • column_namedatatype[ NULL | NOT NULL | IDENTITY ] , • ... • column_namedatatype[ NULL | NOT NULL | IDENTITY ] )

  24. Crear Tabla create table empleado ( emp_id numeric(4,0) IDENTITY, apellido varchar(30) NOT NULL, nombre varchar(30) NOT NULL, e_mail char(6) NULL, departamento typ_ch_deptid )

  25. Borrar Tablas • Sintaxis Simplificada para drop: • DROP TABLE table_name • Ejemplo: • drop table empleado

  26. Recomendaciones para desarrollo • Crear todos los objetos (incluyendo tablas) en scripts y grabarlos • Facilita la recreación de los objetos • Sirve como material permanente de referencia • Especialmente importante para tablas • Especificar una propiedad para cada columna • Usar tipos de datos de usuario para columnas que almacenen el mismo conjunto de valores

  27. Cláusula default • La cláusuladefaulthace que el servidor dé un valor cuando el valor no se proporciona explícitamente al hacer un insert • Sintaxis Simplificada : • create tabletable_name ( • column_namedatatype default default_value [property], • ...)

  28. Modificación de cláusulasdefault • Sintaxis Simplificada: • alter tabletable_name • replace column_namedefaultdefault_value • A pesar de que la sintaxis usa la palabra “replace”, el comando alter table se puede usar para añadir cláusulas default a una tabla

  29. Ejemplo de modificación de cláusulas default alter table publica replace ciudad default “Cali" alter table publica replace depto default “Valle”

  30. Tablas y Permisos • Para permitir que otros usuarios puedan consultar, manipular los datos o hacer referencia a una tabla, se deben dar permisos • Sintaxis Simplificada: • grant { select | insert | update | delete | reference | all } • on table_name • to user_list • Ejemplo: • grant select on empleado to juan, sandra, pablo

  31. Adición de Columnas • Después de creada una tabla, se pueden añadir columnas • Algunos DBMS no permiten borrar directamente una columna de una tabla • Para borrar una columna, se debe borrar y volver a crear la tabla • Sintaxis para añadir una columna a una tabla: • alter table table_name • add column_namedatatype NULL • [, column_namedatatype NULL ...] • Todas las columnas añadidas deben tener la propiedad NULL.

  32. Adicionar Columnas alter table editor add address varchar(40) NULL, country varchar(20) NULL

  33. Copiar Tablas • select into es una extensión que se usa para crear una copia de una tabla existente

  34. Sintaxis de select into • Sintaxis Simplificada : • selectcolumn_listintonew_table_name • from old_table_name • [where condition]

  35. Ejemplos de select into • Ejemplo de copiado de todas las columnas: • select * into titles_copy • from titles • Ejemplo de copiado de algunas columnas : • select title_id, title, type • into titles_copy • from titles

  36. Ejemplos de select into • Ejemplo que copia algunos datos: • select * into titles_copy • from titles • where price > $12.00 • Ejemplo que no copia datos: • Porque la cláusula where siempre da falso, se copia la estructura de la tabla pero no sus datos • select * into titles_copy • from titles • where 1 = 2

  37. DMLes uno de los tres grupos principales de sentencias SQL Comprende cuatro sentencias: insertañade datos a una tabla updateactualiza datos existentes en una tabla deleteborra datos de una tabla selectconsulta datos de una tabla Data Manipulation Language

  38. Sintaxis para insert • sintaxis Simplificada: insert [into] table_name [(column_list)] { values (value_list) | select_statement } • Ejemplos: insert into editor values ("736", “Nuevas BD", “Pasto", “Nariño") insert into editor (nombre, pub_id) values (“Prensa Actual", "2003”)

  39. Extensión SQL para insert • Se pueden insertar múltiples filas en un solo insert utilizando un select embebido • Ejemplo: insert into editor select * from pub..editor • Las columnas en las que se van a insertar datos deben tener los mismos tipos de datos que resulten de las columnas del query

  40. Sintaxis para update • Sintaxis Simplificada : updatetable_name set column1 = { expression | select_statement } [, column2 = { expression | select_statement } ...] [fromtable_list] [wherecondition] • Ejemplos: update titles set price = price * $1.25 update authors set address = "1224 Mason Ct.", phone = "415 773-2882" where au_id = "427-17-2319"

  41. Extensión para update • Se pueden encadenar condiciones en la cláusula where de un update • Ejemplo: update titulo set precio = precio * $0.90 from titulo t, editor p where t.pub_id = p.pub_id and p.state = “Nariño"

  42. Extensión case • La expresión case es una extensión SQL que puede estar embebida en un update • case permite el retorno condicional de un valor de dos o más posibles • Dos estructuras sintácticas para case • Basada en expresiones • Basada en condiciones

  43. Sintaxis para when expression • Sintaxis: caseexpression whenexpressionthenexpression [whenexpressionthenexpression ...] [elseexpression] end • Ejemplo: update titulo set tipo = case tipo when "mod_cook" then "modcook" when "trad_cook" then "tradcook" when "popular_comp" then "popularcomp" end where tipo in ("mod_cook", "trad_cook", "popular_comp")

  44. Sintaxis para when condition • Sintaxis: case whenconditionthenexpression [whenconditionthenexpression ...] [elseexpression] end • Ejemplo: update titulo set precio = case when tipo = "business" then precio * $1.03 when tipo = "mod_cook" then precio * $1.05 when tipo = "trad_cook" and pub_id = "0736" then precio * $1.07 when tipo = "trad_cook" and pub_id = "0877" then precio * $1.10 else precio end

  45. Sin la cláusula else • Si ninguna de las condiciones del case se cumple y no existe un else, case retorna NULL • Ejemplo: update titulo set precio = case tipo when "trad_cook" then precio * 1.07 when "mod_cook" then precio * 1.03 when "business" then precio * 1.05 end

  46. Reglas para case • Solo puede retornar valores • A diferencia del case de la mayoría de los lenguajes de programación, el case del SQL no ejecuta sentencias • Se puede utilizar en cualquier sitio donde se pueda escribir una expresión • Debe retornar un valor compatible con el tipo de dato • Al menos una cláusula (la cláusula when o la cláusula else) deben retornar un valor no NULL

  47. Sintaxis para delete • Sintaxis Simplificada: delete [from] table_name [wherecondition] • Ejemplos: delete from editor delete from titulo where tipo = "business" delete from autor where au_fname = "Luis" and au_lname = “Caicedo"

  48. Extensión para delete • Se pueden encadenar condiciones en la cláusulawhere de un delete • Sintaxis simplificada : delete table_name from table_list [where join_condition] • Ejemplo delete titles from titles t, publishers p where t.pub_id = p.pub_id and p.state = "CA"

  49. truncate table • truncate tableborra todas las filas de una tabla • La operación se ejecuta más rápido que la correspondiente sentencia delete • El comamdo no se puede usar para borrar algunas filas de la tabla • Sintaxis simplificada: truncate table table_name • Ejemplo: truncate table publishers

  50. Registro de Transacciones (Log) • El registro de transacciones se utiliza para recuperar los datos en el evento de un error del usuario o falla del sistema • Actúa ante cadainsert, update, y delete • Algunas operaciones no se registran • Ejemplo de operaciones sin registro: • select into • truncate table