Aprenda PHP y SQLite
4.4 (15 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
152 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Aprenda PHP y SQLite to your Wishlist.

Add to Wishlist

Aprenda PHP y SQLite

La base de datos ligera, rápida y confiable
4.4 (15 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
152 students enrolled
Last updated 8/2016
Spanish
Price: $20
30-Day Money-Back Guarantee
Includes:
  • 8.5 hours on-demand video
  • 8 Articles
  • 8 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Conocer los principios de SQLite
  • Manejar el lenguaje de definición de datos o DLL
  • Modificar las tablas y sus columnas con el lenguaje de manipulación de datos o DML
  • Obtener la información del las tablas con el lenguaje de extracción de datos o DQL
  • Manipular los datos por medio de las funciones de agregado la sentencia SELECT
  • Analizar los datos de una base de datos con las herramientas del diseño conceptual
  • Crear un diagrama Entidad-Relación
  • Convertir un diagrama E-R en un modelo de tablas
  • Transformar un modelo de tablas en una base de datos en SQLite
  • Extraer información de la base de datos con las sentencias JOIN
View Curriculum
Requirements
  • Conocimientos básicos de PHP
  • Conocimientos básicos de bases de datos
Description

SQLite tiene actualmente muchos seguidores gracias a que cumple cabalmente con su lema: es una base de datos ligera, rápida y confiable (las tres cosas). SQLite se integra con muchos lenguajes, pero es verdaderamente potente cuando juntamos a esta base de datos con PHP, el lenguaje de servidor más utilizado en Internet en el mundo.

En este curso ya debes tener los conocimientos básicos de PHP, pues no explicaremos lo que son las variables, las estructuras condicionales o los ciclos. Es deseable que tengas conocimientos en el manejo de las bases de datos, pero no es necesario, ya que explicaremos los tres pasos fundamentales en el diseño de una base de datos: el diseño conceptual, el diseño lógico y el diseño físico, lo cual le ayudará a diseñar cualquier base de datos, independientemente de la plataforma de su elección.

Este curso está dirigido a desarrolladores web con experiencia en PHP deseosos de una base de datos ligera, potente y segura. Dentro del curso abordaremos los tres `principales temas de cualquier lenguaje SQL estándar: El lenguaje de definición de datos o "Data Definition language" (DDL) donde analizaremos la construcción de tablas y los tipos de columnas. Posteriormente revisaremos el lenguaje de manipulación de datos o Data Manipultation Language (DML) donde realizaremos un sistema de altas, bajas y cambios (ABC) o CRUD, por sus siglas en inglés, donde insertaremos, modificaremos y borraremos información de una sencilla tabla.

En la siguiente unidad estudiaremos el lenguaje de selección de datos o Data Query Language (DQL) donde veremos la enorme potencia de la sentencia SELECT y aprovecharemos para revisar las funciones de agregación.

En las siguientes secciones abordaremos temas que son generales a las bases de datos, sobre todo al diseño de las bases de datos, sin importar la plataforma: el diseño conceptual y el diseño lógico, donde obtendremos un modelo entidad-relación de la primera fase y un modelo de tablas de la segunda.

Por último implantaremos nuestros modelos en una base de datos real, lo cual lo conoceremos como "diseño físico", así como las formas normales de nuestra información. También aprenderemos a "unir" diferentes tablas por medio de la sentencia JOIN o por medio de los alias.


Who is the target audience?
  • Desarrolladores web
  • Desarrolladores PHP
Students Who Viewed This Course Also Viewed
Curriculum For This Course
92 Lectures
08:25:25
+
Bienvenida al curso de PHP y SQLite
1 Lecture 04:41
  • Conocer los principios de SQLite
  • Manejar el lenguaje de definición de datos o DLL
  • Modificar las tablas y sus columnas con el lenguaje de manipulación de datos o DML
  • Obtener la información del las tablas con el lenguaje de extracción de datos o DQL
  • Manipular los datos por medio de las funciones de agregado la sentencia SELECT
  • Analizar los datos de una base de datos con las herramientas del diseño conceptual
  • Crear un diagrama Entidad-Relación
  • Convertir un diagrama E-R en un modelo de tablas
  • Transformar un modelo de tablas en una base de datos en SQLite
  • Extraer información de la base de datos con las sentencias JOIN
Preview 04:41
+
Introducción a SQLite
6 Lectures 32:30

SQLite es una biblioteca de C que implementa un motor de base de datos SQL.

SQLite es un proyecto de código abierto.

No se requiere de ninguna biblioteca externa para compilar esta extensión desde PHP.

La extensión SQLite3 está activada por defecto desde PHP 5.3.0.

Preview 05:26

Una clase que se usa como interfaz de bases de datos SQLite 3.

  1. Existe una clase que se llama SQLite3.

  2. No hay necesidad de “conectarse”, sino que se crea una clase para la base de datos, “extendiéndose” de la clase SQLite3.

Preview 09:45

El lenguage SQL lo podemos dividir en tres grandes secciones principales:

DDL - Data Definition Language: create, alter y drop

DML - Data Manipulation Language: Insert, delete, update

DQL - Data Query Language: Select

Preview 01:45

Una forma de delimitar un string es mediante la sintaxis heredoc: <<<. Después de este operador, se deberá proporcionar un identificador y justo después una nueva línea. A continuación va el propio string, y para cerrar la notación se pone el mismo identificador.

El identificador de cierre debe empezar en la primera columna de la nueva línea. Asimismo, el identificador debe seguir las mismas reglas de nomenclatura de las etiquetas en PHP: debe contener solo caracteres alfanuméricos y guiones bajos y debe empezar con un carácter alfabético o un guión bajo.

Preview 05:38

Una herramienta muy poderosa para convertir a nuestra computadora en un servidor web es MAMP. Su forma de instalar es muy fácil.

Preview 06:10

MAMP es una poderosa herramienta para convertir nuestra computadora en un servidor web local.

Instalar MAMP en una computadora con Windows
03:46
+
DDL: data definition language, lenguaje de definición de datos
12 Lectures 47:58


Clase

Descripción

NULL

NULL es considerado un valor vacío.

INTEGER

El valor  entero con signo entre 1 y 8 bytes dependiendo de la magnitud del valor.

REAL

El valor es de punto flotante, se almacena como un número de coma flotante de 8 bytes IEEE.

TEXT

El valor es una cadena de texto, utilizando la codificación de la base de datos ( UTF- 8, UTF - 16BE o UTF - 16LE)

BLOB

Permite almacenar objetos en formato BLOB (Binary Large Objects) como  imágenes, archivos de sonido y otros objetos multimedia; a veces se almacenan como BLOB código de binarios.

Preview 02:05

SQLite tipo de afinidad o Affinity Type:

En SQLite contiene un concepto llamado “afinidad” o “affinity”. Cada columna puede seguir almacenando en su tipo de columna, pero puede ser representado con diferente “máscara”, con lo cual lo hace “a fin” con otras bases de datos.

Cada columna en SQLite 3 tiene una clase y una afinidad:

Las afinidades o affinity
03:22

CREATE TABLE database_name.table_name(

  column1 datatype,

  column2 datatype,

  column3 datatype,

  .....

  columnN datatype,

);

Versión 3.3+

create table if not exists tabla(col1 typ1, ..., colN typN)

Crear una tabla con Create Table
04:53

En SQLite, con la sentencia DROP TABLE se elimina una tabla con su definición, datos asociados, índices, triggers, constrains y permisos.

Cuando una tabla es eliminada, no hay forma de recuperarla. Se borra en forma definitiva.

Sintaxis:

DROP TABLE basededatos.tabla;

En versión 3.3. y más:

drop table if exists TableName

Borrar una tabla en SQLite
04:39

Modifica la columna de la tabla. Ejemplos de comandos “constraints”:

NOT NULL

PRIMARY KEY

UNIQUE

AUTOINCREMENT

DEFAULT

CURRENT_TIME

CURRENT_DATE

CURRENT_TIMESTAMP

Modificar las columnas con Constraints
06:32

Podemos escribir “constraints” a nivel tabla.

Por lo general involucra a más de una columna, pero puede involucrar sólo una sin problema.

Generalmente utilizamos los constraint PRIMARY KEY, UNIQUE y CHECK a nivel tabla cuando involucran a más de una columna

Crear constraints a nivel tabla
03:30

Podemos crear tabla desde un query o la sentencia select.

CREATE [TEMP] TABLE nombreTabla AS SELECT query;

El query sólo se ejecuta una vez, cuando se crea la tabla.

Las tablas temporales solo existen cuando la base de datos esté abierta. Cuando se cierra, desaparecen.

Las tablas temporales sólo pueden ser accesadas por la conexión con la que fueron creadas

Crear una tabla desde un query
03:02

En SQLite la sentencia ALTER TABLE solo puede añadir columnas y renombrar la tabla.

No podemos eliminar columnas con esta sentencia.

Las nuevas columnas siempre se añaden al final de la tabla.

Si necesitas hacer muchas modificaciones, es mejor hacer una tabla nueva y copiar los datos con un SELECT.

Modificar una tabla por medio de Alter Table
05:45

  • Siempre es importante declarar una o varias columnas como Primary Key, que es el índice principal de la tabla.

  • Sólo podemos tener un índice principal por tabla.

  • Las llaves en un índice principal deben ser únicas, es decir, no repetirse.

  • El constraint “UNIQUE” queda implicito en “PRIMARY KEY”

El constraint Primary Key
05:59

  • Las vistas o views proporcionan una manera de empaquetar consultas en un objeto predefinido.

  • Una vez creadas, las vistas actúan de como tablas de sólo lectura.

  • Al igual que las tablas, las vistas pueden ser temporales.

  • La sintaxis básica del comando CREATE VIEW es:

CREATE [TEMP] VIEW nombreVista AS SELECT quer

Crear y eliminar una vista o View
03:21

Los índices son una manera rápida de encontrar información en la tabla.

La sintaxis para crear un índice, una vez que la tabla ha sido creada es:

CREATE [UNIQUE] INDEX nombre_index ON nombre_tabla ( columna1 [, ...] );

Ni UNIQUE ni PRIMARY KEY implican que no se acepten valores nulos

Crear y eliminar un índice en SQLite
04:47

En esta clase encontrarás los apuntes del capítulo en los recursos (archivo PDF).

Apuntes: DDL, Data Definition Language
00:03
+
DML: Data Manipulation Language, insertar, modificar y borrar los registros
13 Lectures 01:40:27

La sentencia INSERT INTO nos sirve para insertar datos en una tabla de una base de datos.

SQLite cuenta con dos sintaxis:

1)

INSERT INTO tabla(column1, column2, column3,...columnN)]  

VALUES (value1, value2, value3,...valueN);

2)

INSERT INTO tabla VALUES (value1,value2,value3,...valueN);

Preview 08:17

La segunda sintaxis de la sentencia INSERT no es necesario especificar las columnas, pero debe escribirse los valores para cada una de las columnas en el orden en que fueron creadas en la tabla.

Si una columna tiene el constraint de “AUTOINCREMENT”, debes de enviar un valor de NULL para que se autoincremente.

Segunda sintaxis de la sentencia INSERT
03:44

Puedes poblar una tabla desde otra, siempre y cuando las columnas de ambas coincidan en la tabla que añade los registros.

INSERT INTO tabla1[(column1, column2, ... columnN)]

  SELECT column1, column2, ...columnN

  FROM tabla2

  [WHERE condition];

Se verá un ejemplo cuando se vea la sentencia SELECT

Poblar una tabla desde otra tabla
04:45

Con la sentencia UPDATE podemos modificar cualquiera de las columnas de cualquier registro o conjunto de registros (incluso de toda la tabla).

Su sintaxis es:

UPDATE nombre_tabla SET columna1=valor1  [, ...] WHERE expresión

Si se omite la sentencia WHERE, se modificarán las columnas de TODA la tabla.

Modificar el valor de los registros con UPDATE
09:57

Con la sentencia DELETE podemos borrar uno o todos los registros de una tabla.

Sintax:

DELETE FROM nombre_tabla

WHERE [condición];

Los registros son borrados en forma definitiva.

Borrar registros en una tabla con DELETE
06:03

En este video manejaremos la sentencia SELECT para vaciar los datos de una tabla.

ABC Mostrar la tabla con select
15:41

En este video crearemos el formato para la captura de los datos de nuestra tabla del curso.

ABC Crear el formato de captura de alta
09:13

En este video insertaremos los datos y realizaremos una validación previa.

ABC Validar los datos e insertarlos en la tabla
14:49

En este video crearemos la estructura básica de los archivos para nuestro ABC y conectaremos los diferentes archivos.

ABC Conectar la tabla con los archivos Modificar y Borrar
05:37

Vaciaremos los datos de la tabla en el formato para la modificación de los mismos.

ABC Desplegar los datos para modificarlos
10:08

Una vez modificados los datos por el usuario, los validaremos y los almacenaremos en la tabla.

ABC Almacenar los cambios en la base de datos
06:02

Haremos una página previa a borrar el archivo, donde el usuario podrá decidir si borra el mismo o no lo hace.

ABC Borrar un registro de la base de datos
06:08

Anexo encontrarás los apuntes de la sección.

Apuntes: DML Data Manipulation Language
00:03
+
DQL: Data Query Language, la sentencia SELECT
17 Lectures 02:08:35

Con la sentencia SELECT podemos extraer la información de una tabla.

Sintaxis:

SELECT column1, column2, columnN FROM nombre_tabla;

Para extraer todas las columnas, utilizamos en asterisco.

SELECT * FROM nombre_tabla;

Preview 03:35

Por medio de la cláusula WHERE podemos seleccionar por medio de una expresión. La cláusula WHERE es la misma para las sentencias SELECT, UPDATE y DELETE.

Usamos operadores dentro de esa expresión:

  • Operadores matemáticos

  • Operadores de comparación

  • Operadores lógicos

  • Operadores de desplazamientos de bits

La cláusula WHERE
03:41

Con la cláusula DISTINCT eliminamos los registros duplicados de una selección.

Sintaxis:

SELECT DISTINCT column1, column2,.....columnN

FROM nombre_tabla

WHERE [condición]

La cláusula DISTINCT
08:13

Suponga que la variable “a” tiene un valor de 5 y la variable “b”, un valor de 10.

Ejemplo:

== Verifica si dos valores son iguales o no. (a == b) Regresaría falso.

= Verifica si dos valores son iguales o no. (a = b) Regresaría falso.

Los operadores para la cláusula WHERE
08:34

+ Suma valores de columnas o constantes

- Resta valores entre columnas o constantes

* Multiplicación entre columnas o constantes

/ División entre columnas o constantes

% Módulo entre columnas o constante

Operadores matemáticos en SQLite
06:07

AND Es verdadera si todas las expresiones son verdaderas.

BETWEEN Regresan los registros que se encuentran ENTRE dos valores.

EXISTS Busca los renglones dentro de un subquery.

IN Regresa los renglones si existe en una lista.

Operadores lógicos: LIKE
11:09

OR Regresa verdadero si una de las condiciones .

IS NULL Regresa si la columna es nula.

IS Funciona como el operador igual a (=)

IS NOT Funciona como el operador diferente a (!=)

|| Concatena dos cadenas..

UNIQUE Regresa los valores que no estén duplicados.

Operadores lógicos: OR
06:09

El operador GLOB es muy similar a LIKE, pero se apega más a UNIX o LINUX.

Es sensible a mayúsculas y minúsculas, utiliza como comodines “*” para una serie de carcateres o cero y “?” para un sólo caracter.

Operadores lógicos: Glob
08:06

Por medio de la cláusula ORDER BY nos permite ordenar la extracción de datos en forma ascendente o descendente.

Sintaxis:

SELECT lista_columnas

FROM nombre_tablas

[WHERE condición]

[ORDER BY columna1, columna2, .. columnaN] [ASC | DESC];

La cláusula ORDER BY
08:32

Por medio de la cláusula ORDER BY nos permite ordenar la extracción de datos en forma ascendente o descendente.

Sintaxis:

SELECT lista_columnas

FROM nombre_tablas

[WHERE condición]

[ORDER BY columna1, columna2, .. columnaN] [ASC | DESC];

Ordenar por columna una tabla
08:18

La cláusula LIMIT nos permite limitar el número de registros extraídos de una tabla.

Sintaxis:

SELECT columna1, columna2, columnaN

FROM tablas

LIMIT [num_renglones]

La cláusula LIMIT y OFFSET
06:54

La cláusula LIMIT nos permite limitar el número de registros extraídos de una tabla.

Sintaxis:

SELECT columna1, columna2, columnaN

FROM tablas

LIMIT [num_renglones]

Paginación de una consulta, primera parte
10:30

La cláusula LIMIT nos permite limitar el número de registros extraídos de una tabla.

Sintaxis:

SELECT columna1, columna2, columnaN

FROM tablas

LIMIT [num_renglones]

Paginación de una consulta: conclusión
17:39

La cláusula GROUP BY, dentro de SELECT, nos sirve para agrupar los registros idénticos.

La cláusula GROUP BY sigue a la cláusula WHERE y precede a ORDER BY (si se utiliza).

Puede utilizar más de una columna en GROUP BY.

Todas las columnas utilizadas en el GROUP BY deben estar incluidas en la lista de columnas del SELECT.

La cláusula GROUP BY
07:26

Sintaxis:

SELECT column-list

FROM table_name

WHERE [ conditions ]

GROUP BY column1, column2....columnN

ORDER BY column1, column2....columnN

Generar estadísticas con la cláusula GROUP BY
09:15

La cláusula HAVING permite filtrar los resultados obtenidos por medio de GROUP BY .

La cláusula HAVING afecta a las columnas que son usuadas en GROUP BY, no afecta a las columnas utilizadas en el SELECT.

La cláusula HAVING debe seguir la cláusula GROUP BY en una consulta y también preceder a la cláusula ORDER BY (si se utiliza)

Crear una subselección con HAVING
04:23

En esta clase encontrarás los apuntes de la sección en los recursos descargables en formato PDF.

Apuntes: DQL, data Query Language
00:04
+
Funciones de la sentencias SELECT
10 Lectures 46:21
  1. COUNT(*)

  2. MAX(*)

  3. MIN(*)

  4. AVG(*)

  5. SUM(*)

  6. RANDOM(*)

  7. ABS(*)

  8. UPPER(*) y LOWER(*)

  9. LENGTH(*)

  10. SUBSTR()

Preview 05:25

Por medio del ALIAS podemos renombrar temporalmente con ALIAS.

Las tablas y columnas sólo son renombradas dentro de la sentencia SQL.

Terminando la sentencia, se pierden los valores de ALIAS.

Las columnas se renombran únicamente durante el query.

Añadir un ALIAS en columnas y tablas
06:22

La función COUNT() cuenta los registros extraídos en el SELECT.

Para extraer su valor es mejor utilizar un alias.

La función agregada COUNT(*)
04:04

Las funciones MAX() y MIN() extraen el valor máximo y mínimo de un criterio en una tabla o conjuntos de tablas.

Las funciones agregadas MAX() y MIN()
04:28

La función de agregado AVG() nos permite obtener el promedio de la columna de los registros extraídos en una sentencia SELECT.

La función agregada AVG() para calcular el promedio
02:31

La función SUM(*) realiza la suma de las columnas que cumplan los criterios de extracción en un query o SELECT.

Las funciones SUM()
05:01

La función random() regresa un número pseudo-aleatorio entero entre -9223372036854775808 y +9223372036854775807.

Las funciones RANDOM() y ABS()
07:31

Las funciones UPPER() y LOWER() modifica una cadena a mayúsculas o minúsculas, respectivamente

Las funciones UPPER() y LOWER()
03:38

La función length() regresa el número de caracteres de una cadena.

Las funciones LENGTH() y SUBSTR()
07:18

En esta clase encontrarás los apuntes del capítulo en los recursos (archivo PDF).

Apuntes: Funciones de agregado para la sentencia SELECT
00:03
+
Diseño de bases de datos
12 Lectures 41:34

1) Etapa del diseño conceptual

2) Etapa del diseño lógico

3) Etapa del diseño físico

Preview 03:22

  • El modelo más usado en esta etapa es el de Entidad-Relación o ER.

  • En este modelo tendremos las entidades (donde se almacenan de manera lógica la información) y la relación entre las diversas entidades.

  • Los cimientos del modelo ER se le atribuyen al Dr. Peter Chen en 1976.

Diseño conceptual de una base de datos
02:41

  • Una “entidad” es una parte diferenciada del mundo físico, la cual posee información que necesitamos para nuestro sistema.

  • Ejemplo de entidades:

    • Sistema comercio electrónico: artículos, clientes, pedidos, facturas.

    • Sistema escolar: alumnos, profesores, materias,  salones.

    • Sistema de almacén: artículos, facturas, entradas, salidas, clientes, proveedores.

    • Biblioteca: libros, autores, editoriales, lectores.

    • Sistema contable: cuentas, movimientos, usuarios, préstamos, ingresos.

    • Sistema médico: Pacientes, doctores, medicinas, recetas, facturas.

Las entidades en el modelo ER de una base de datos
05:17

  • Los atributos son partes de la información (o propiedades) de la entidad.

  • Hay propiedades que entran al modelo (nos interesan) y hay propiedades o atributos que no nos interesan.

  • Por ejemplo de una entidad alumno:

    • Matrícula

    • Nombre

    • Edad

    • Género

    • Grado

    • Salón

Los atributos de un modelo ER de una base de datos
03:33

  • Un atributo o propiedad lo consideraremos como “llave” si es diferente para cada elementos de la entidad.

  • Un atributo candidatos a ser llave en una entidad “alumno” será la matrícula, puesto son diferentes para cada alumno y no se repiten.

  • El atributo “nombre” no es candidato, ya que suelen duplicarse, incluso nombre y apellido.

  • Para la entidad “paciente” será un “atributo candidato” a ser llave su número de seguridad social.

Definición de las llaves en los modelos Entidad-Relación
05:32

  • En el modelo ER, una relación entre entidades se representa por medio de un rombo.

  • En algunas versiones del modelo ER sólo se representa con una línea entre las entidades.

Las relaciones entre entidades
04:43

  • En el modelo ER, una relación entre entidades se representa por medio de un rombo.

  • En algunas versiones del modelo ER sólo se representa con una línea entre las entidades.

Definición de la cardinalidad en las relaciones
03:10

  • Las relaciones uno a uno (1:1) tiene una permanencia fuerte, por ejemplo, una mascota sólo tiene un dueño, y un dueño sólo tiene una mascota.

  • Una computadora sólo tiene un usuario, y un usuario sólo tiene una computadora.

  • Son raras este tipo de relaciones: por lo general una persona puede tener muchas mascotas, y un usuario puede tener más de una computadora.

Relaciones uno a uno
03:11

Las relaciones uno a muchos (1:N) son más comunes. A un elemento de la entidad “A” tiene muchos elementos de la entidad “B”.

Por ejemplo:

  • Un dueño tiene muchas mascotas.

  • Una escuela tiene muchos alumnos.

  • Un jefe tiene muchos subalternos.

  • Un doctor tiene muchos pacientes.

Relaciones uno a muchos
02:20

Las relaciones muchos a muchos (M:N) son más complejas. A un elemento de la entidad “A” tiene muchos elementos de la entidad “B”, pero un elemento de la entidad “B” tiene muchos elementos de la entidad “A”.

Por ejemplo:

  • Un estudiante tiene muchas materias y una materia tiene muchos estudiantes inscritos.

  • Una estudiante tiene muchos salones y un salón tiene muchos alumnos.

  • Una entrada de almacén tiene muchos artículos y un artículo tiene muchas entradas de almacén.

Relaciones muchos a muchos
04:19

  • Una “llave foránea” es un campo en la tabla que relaciona a la llave primaria de otra tabla.

La definición de las llaves foráneas
03:23

En esta clase encontrarás los apuntes del capítulo en los recursos (archivo PDF).

Apuntes: Diseño de bases de datos
00:03
+
Diseño lógico de una base de datos
9 Lectures 48:43

1. Se transforman en tablas todos los tipos de entidades y relaciones que aparecen en el diagrama E/R.

2. Se seleccionan las llaves primarias para cada una de las tablas de nuestro esquema lógico.

3. Fusión de tablas: Se combinan aquellas tablas que

compartan su llave primaria.

4. Normalización: Se normaliza el esquema resultante

(al menos, hasta BCNF).

5. Se definen todas las restricciones de integridad que sean aplicables al esquema obtenido.

Preview 09:01

A cada uno de los atributos les asignamos un tipo de dato.

Convertir las entidades en tablas
09:08

Cuando tenemos una relación 1:1 podemos seleccionar cualquiera de las llaves primarias y convertirlas en llaves foráneas de la segunda tabla.

Convertir las relaciones uno a uno en las tablas
02:47

Cuando tenemos una relación de uno a muchos, por ejemplo, un maestro tiene muchas asignaturas, pero una asignatura tiene sólo un maestro

Convertir las relaciones uno a muchos en las tablas
01:57

Cuando tenemos una relación muchos a muchos (M:N) generalmente necesitamos una tabla intermedia que contiene la dupla de las llaves primarias de ambas tablas.

No se pueden duplicar estas duplas ni estar vacías.

No es necesario añadir llaves foráneas en ambas tablas principales.

Convertir las relaciones muchos a muchos en las tablas
05:42

Una tabla está en Primera Forma Normal si:

  • Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son simples e indivisibles.

  • La tabla contiene una clave primaria única.

  • La clave primaria no contiene atributos nulos.

  • No debe existir variación en el número de columnas.

  • Los Campos que no conforman la “llave principal” deben identificarse por la llave (Dependencia Funcional).

Primera forma normal
09:04

  • Dependencia Funcional. Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna “llave” (no primos) dependen de forma completa de la llave principal.

  • Es decir que no existen “dependencias parciales”.

  • Todos los atributos que no son “llave principal” deben depender únicamente de la llave principal.

Segunda forma normal
05:07

Ningún atributo “no primo” depende transitivamente de

ninguna clave candidata.

Para obtener una relación en 3NF:

Se eliminan las dependencias transitivas problemáticas

trasladándolas a una nueva relación (tabla).

BCNF: Forma Normal de Boyce y Codd

Todo determinante es una clave candidata.

Toda relación en BCNF está en 3NF.

Tercera forma normal
05:54

En esta clase encontrarás los apuntes del capítulo en los recursos (archivo PDF).

Apuntes: Diseño lógico de una base de datos
00:03
+
Diseño físico de una base de datos
10 Lectures 50:06
  • El diseño físico de la base de datos optimiza el rendimiento a la vez que asegura la integridad de los datos al evitar repeticiones innecesarias de datos.

  • Durante el diseño físico, se transforman las entidades en tablas, las instancias en filas y los atributos en columnas.

Preview 02:48

  • Cómo convertir entidades en tablas físicas

  • Qué atributos utilizar para las columnas de las tablas físicas

  • Qué columnas de las tablas deben definirse como llaves primarias

  • Qué índices deben definirse en las tablas

  • Qué vistas deben definirse en las tablas

  • Cómo desnormalizar las tablas (si es necesario)

  • Cómo resolver relaciones de muchos a muchos

Crear las tablas de las bases de datos
05:37

Insertar datos iniciales a las tablas de las bases de datos
02:53

Una manera tradicional de “armar las llaves” es por medio del alias.

A cada columna le corresponde el alias de su tabla para evitar “choque de nomenclaturas”.

Tenemos que relacionar la llave primaria con las llave foránea.

Opcionalmente podemos añadir un alias a la columna.

Armar llaves de las tablas con ALIAS
10:02

Por medio de la cláusula JOIN podemos unir dos o más tablas por medio de campos comunes.

Los tipos de JOINS con los que contamos en SQLite son:

  • CROSS JOIN

  • INNER JOIN

  • OUTER JOIN

(SQLite no cuenta con RIGHT y FULL, sólo con LEFT)

Las sentencias JOINS en SQLIte
04:35

  • A CROSS JOIN empata cada fila de la primera tabla con cada fila de la segunda tabla.

  • Si las tablas de entrada tienen “x” y columnas “y”, respectivamente , la tabla resultante tendrá “x * y” columnas, un producto cartesiano.

  • Debido a que CROSS JOIN genera resultados muy grandes. Debe tener cuidado de utilizar sólo cuando sea apropiado.

La sentencia CROSS JOIN en SQLite
04:24

  • Un INNER JOIN da como resultado la combinación de valores de las columnas de dos tablas (Tabla1 y Tabla2 ) con base en la “expresión de unión”.

  • La consulta compara cada fila de la “Tabla 1” con cada fila de la “Tabla 2” para encontrar todos los pares de filas que satisfacen la “expresión de unión”.

La sentencia INNER JOIN en SQLite
04:03

  • OUTER JOIN es una extensión de INNER JOIN .

  • Aunque el SQL estándar define tres tipos de combinaciones externas : LEFT, RIGHT y FULL, SQLite sólo admite el LEFT OUTER JOIN .

  • OUTER JOIN tienen una condición que es idéntica a la LEFT JOIN, expresada mediante una palabra clave como ON, USING o NATURAL.

  • Una vez que la primera operación JOIN es calculada, una operación OUTER JOIN concatenará los registros faltantes de ambas tablas, llenando los campos faltantes con valores nulos (NULL) en caso de que sea necesario.

la sentencia LEFT OUTER JOIN en SQLite
06:47

Por medio de dos sentencias JOIN podemos unir tablas con relación “muchos a muchos”, las cuales cuentan con una tabla intermedia.

Por lo  general necesitaremos una función de agregado como “GROUP_CONCAT()” porque vamos a recibir un columna con más de un resultados.

Unir tablas con relación "muchos a muchos" con la sentencia JOIN
08:54

En esta clase encontrarás los apuntes del capítulo en los recursos (archivo PDF).

Apuntes: Diseño físico de una base de datos
00:03
+
A manera de conclusión
2 Lectures 04:28

Con este video terminamos el curso de PHP y SQLite. Hasta pronto.

Preview 04:24

Ejercicios del curso
00:04
About the Instructor
Francisco Javier Arce Anguiano
4.3 Average rating
977 Reviews
12,840 Students
34 Courses
Lic. Matemáticas Aplicadas y Computación

Soy licenciado en matemáticas aplicadas y computación por parte de la Universidad Nacional Autónoma de México e instructor certificado de Adobe desde 2002. He trabajado para diferentes centros autorizados de Adobe en México y da clases en universidades de la Ciudad de México. Asimismo, he publicados cuatro libros sobre ActionScipt 2 y 3, con la editorial AlfaOmega de Méxicoasi como un libro de desarrollo de juegos con ActionScript con la misma editorial. He desarrollado aplicaciones para Android, iPhone, Windows Phone y BlackBerry. Actualmente preparo un libro para el desarrollo de juegos con HTML5 y para el desarrollo de aplicaciones a dispositivos móviles con esta tecnología. También he desarrollado múltiples aplicaciones con PHP, CSS, MySQL y JavaScript en mi vida profesional. Me he especializado en el desarrollo de aplicaciones educativas con Adobe Air y su desarrollo para dispositivos móviles. He estado pendiente de la evolución de HTML5 y CSS3 casi desde los inicios de estas tecnologías.