ABD-ES 6A&B
El alumno codificará programas computacionales a través de operaciones del paradigma de programación estructurada para resolver problemas.
De acuerdo con la metodología de diseño curricular de la CGUTyP, las competencias se desagregan en dos niveles de desempeño: Unidades de Competencias y Capacidades.
Administrar la infraestructura tecnológica mediante el mantenimiento y soporte técnico, técnicas de diseño y administración de redes para optimizar el desempeño, garantizando la operación física y lógica de los equipos de cómputo y redes de área local con el fin de contribuir al logro de los objetivos de la organización.
Da clic en la siguiente imagen para acceder al recurso:
U1 T1 Actividad 1 (Individual)
Indicaciones: Después de analizar los requerimientos anteriores, elabora el diagrama entidad-relación utilizando alguna herramienta software. Después, comparte tu diseño con tus compañeros y de la forma en la que identificaste las entidades, los atributos y las relaciones. Anexa el diagrama en un reporte PDF con portada, y súbelo a moodle.
Structured Query Language o SQLEs un lenguaje utilizado por la mayoría de los SGBDR surgidos a fines de los años 70, y que llega hasta nuestros días.
Poco de historiaEn 1986 fue estandarizado por el organismo ANSI (American Nacional Standard Institute), dando lugar a la primera versión estándar de este lenguaje, el SQL-86 o SQL1. Al año siguiente este estándar es adoptado también por el organismo internacional ISO (International Standarization Organization).
A lo largo del tiempo se ha ido ampliando y mejorando. En la actualidad SQL es el estándar de facto de la inmersa mayoría de los SGBDR comerciales. El soprte es general y muy amplio, pero cada sistema (Oracle, SQL Server, MySQL, etc.) incluye sus ampliaciones y pequeñas particularidades.
El ANSI SQL ha ido sufrido varias revisiones a lo largo del tiempo.
Sentencias de definiciónCREATE SCHEMA {[nombre_esquema] | [AUTHORIZATION usuario]} [lista_de_elementos_del_esquema];
DROP SCHEMA nombre_esquema {RESTRICT|CASCADE};
CREATE TABLE [ {GLOBAL | LOCAL} TEMPORARY ] < nombre de la tabla > ( < elemento de la tabla > [ { , < elemento de la tabla > } ... ] ) [ON COMMIT {PRESERVE | DELETE } ROWS ] CREATE TABLE DISCOS_COMPACTOS ( ID_DISCO_COMPACTO INT, TITULO_CD VARCHAR(60), ID_DISQUERA INT );
ALTER TABLE < nombre de la tabla > ADD [COLUMN] < definición de columna > | ALTER [COLUMN] < nombre de columna > { SET DEFAULT < valor predeterminado > | DROP DEFAULT } | DROP [COLUMN] < nombre columna > { CASCADE | RESTRICT } ALTER TABLE ARTISTAS ADD COLUMN FDN_ARTISTA DATE; ALTER TABLE ARTISTAS ALTER COLUMN LUGAR_DE_NACIMIENTO SET DEFAULT 'Desconocido'; ALTER TABLE ARTISTAS ALTER COLUMN LUGAR_DE_NACIMIENTO DROP DEFAULT; ALTER TABLE ARTISTAS DROP COLUMN LUGAR_DE_NACIMIENTO CASCADE;
DROP TABLE < nombre de la tabla > { CASCADE | RESTRICT } DROP TABLE ARTISTAS CASCADE;
Para cada columna tenemos que elegir entre algún dominio definido por el usuario o alguno de los tipos de datos predefinidos que se describen a continuación:
|
|
---|---|
Tipos de datos | Descripción |
CHARACTER (longitud) | Cadenas de caracteres de longitud fija |
CHARACTER VARYING | Cadenas de caracteres de longitud variable |
BIT (longitud) | Cadenas de bits de longitud fija |
BIT VARYING | Cadenas de bits de longitud variables |
NUMERIC (precisión, escala) | Números decimales con tantos dígitos como indique la presición y tantos decimales como indique la escala |
DECIMAL (precisión, escala) | Número decimales con tantos dígitos como indique la presición y tantos decimales como indique la escala |
INTEGER | Números ennteros |
SMALLINT | Números enteros pequeños |
REAL | Números con coma flotante con prescisión predefinida |
FLOAT (precisión) | Números con coma flotante con la precisión especificada |
DOUBLE PRECISIÓN | Números con coma flotante con más precisión predefinida que la del tipo REAL |
DATE | Fechas. Están computestas de: YEAR, MONTH, DAY |
TIME | Horas. Están compuestas de HOUR, MINUT, SECOND |
TIMESTAMP | Fechas y horas. Están compuestas de YEAR, MONTH, DAY, HOUR, MINUT, SECOND |
CREATE TYPE < nombre del tipo > AS < tipo de atributo > FINAL; CREATE TYPE SALARIO AS NUMERIC(8,2) FINAL; CREATE TABLE EMPLEADO ( ID_EMPLEADO INTEGER, SALARIO_EMPLEADO SALARIO );
< nombre de columna > < tipo de datos > DEFAULT < valor predeterminado > CREATE TABLE ARTISTAS ( ID_ARTISTA INT, NOMBRE_ARTISTA VARCHAR(60), LUGAR_DE_NACIMIENTO VARCHAR(60) DEFAULT 'Desconocido' );
CREATE TABLE ARTISTAS_DISCO_COMPACTO ( ID_ARTISTA INT NOT NULL, NOMBRE_ARTISTA VARCHAR(60) NOT NULL, LUGAR_DE_NACIMIENTO VARCHAR(60) );
CREATE TABLE CD_INVENTARIO ( NOMBRE_ARTISTA VARCHAR(40), NOMBRE_CD VARCHAR(60) UNIQUE, DERECHOSDEAUTOR INT ) CREATE TABLE CD_INVENTARIO ( NOMBRE_ARTISTA VARCHAR(40), NOMBRE_CD VARCHAR(60), DERECHOSDEAUTOR INT, CONSTRAINT UN_ARTISTA_CD UNIQUE (NOMRE_ARTISTA, NOMBRE_CD) ); CREATE TABLE CD_INVENTARIO ( NOMBRE_ARTISTA VARCHAR(40), NOMBRE_CD VARCHAR(60) NOT NULL UNIQUE, DERECHOSDEAUTOR INT ); CREATE TABLE CD_INVENTARIO ( NOMBRE_ARTISTA VARCHAR(40), NOMBRE_CD VARCHAR(60) NOT NULL, DERECHOSDEAUTOR INT, CONSTRAINT UN_ARTISTA_CD UNIQUE (NOMBRE_CD) );
CREATE TABLE CD_ARTISTAS ( ID_ARTISTA INT PRIMARY KEY, NOMBRE_ARTISTA VARCHAR(60), ID_ANGENCIA INT ); CREATE TABLE CD_ARTISTAS ( ID_ARTISTA INT, NOMBRE_ARTISTA VARCHAR(60), ID_AGENCIA INT, CONSTRAINT PK_ID_ARTISTA PRIMARY KEY (ID_ARTISTA, NOMBRE_ARTISTA) ); CREATE TABLE CD_ARTISTAS ( ID_ARTISTA INT PRIMARY KEY, NOMBRE_ARTISTA VARCHAR(60), ID_AGENCIA INT, CONSTRAINT UN_NOMBRE_ARTISTA UNIQUE (NOMBRE_ARTISTA) ); CREATE TABLE CD_ARTISTAS ( ID_ARTISTA INT, NOMBRE_ARTISTA VARCHAR(60) UNIQUE, ID_AGENCIA INT, CONSTRAINT PK_ID_ARTISTA PRIMARY KEY (ID_ARTISTA) );
CREATE TABLE TITULOS_CD ( ID_TITULO_CD INT, TITULO_CD VARCHAR(60), ID_EDITOR INT REFERENCES EDITORES_CD ); CREATE TABLE TITULOS_CD ( ID_TITULO_CD INT, TITULO_CD VARCHAR(60), ID_EDITOR INT, CONSTRAINT FK_ID_EDITOR FOREING KEY (ID_EDITOR) REFERENCES EDITORES_CD (ID_EDITOR) );
CREATE TABLE TITULOS_CD ( ID_DISCO_COMPACTO INT, TITULO_CD VARCHAR(60) NOT NULL, EN_EXISTENCIA INT NOT NULL, CONSTRAINT CK_EN_EXISTENCIA CHECK (EN_EXISTENCIA > 0 AND EN_EXISTENCIA < 30) ); CREATE TABLE TITULOS_CD ( ID_DISCO_COMPACTO INT, TITULO_CD VARCHAR(60) NOT NULL, EN_EXISTENCIA INT NOT NULL CHECK (EN_EXISTENCIA > 0 AND EN_EXISTENCIA < 30)>) ); CREATE TABLE TITULOS_CD ( ID_DISCO_COMPACTO INT, TITULO_CD VARCHAR(60) NOT NULL, ERA CHAR(5), CONSTRAINT CK_ERA CHECK (ERA IN ('1940s','1950s','1960s','1970s','1980s','1990s','2000s')) ); CREATE TABLE TITULOS_CD ( ID_DISCO_COMPACTO INT, TITULO_CD VARCHAR(60) NOT NULL, ERA CHAR(5), CONSTRAINT CK_ERA CHECK ( ERA IN ( '1980s','1990s','2000s' ) ) ); CREATE TABLE TITULOS_CD ( ID_DISCO_COMPACTO INT, TITULO_CD VARCHAR(60) NOT NULL, EN_EXISTENCIA INT NOT NULL, CONSTRAINT CK_EN_EXISTENCIA CHECK ( (EN_EXISTENCIA BETWEEN 0 AND 30) OR (EN_EXISTENCIA BETWEEN 49 AND 60) ) );
Indicaciones: Elabora el query correspondiente al diagrama ER de la Actividad 1. Después, sube el archivo .txt a Moodle.
Da clic en la siguiente imagen para acceder al recurso:
Recurso sobre usuarios de base de datos U1 T2 Actividad 1 (Individual)
Indicaciones: Descarga el recurso anterior, responde lo que se te pide apoyado del documento PDF sobre tipos de usuarios en base de datos, y súbelo a Moodle en formato PDF.
Roles de nivel en SQL ServerDa clic en la siguiente imagen para acceder al recurso:
U1 T2 Actividad 2 (Individual)
Indicaciones: Una vez analizada la información anterior, elabora un mapa mental de los diferentes niveles de roles en SQL, en donde incluyan una breve descripción. Después, descarga el mapa mental en un documento PDF o PNG, y súbelo a Moodle.
Permisos en SQL ServerDa clic en la siguiente imagen para acceder al recurso:
Gráfico de los permisos en SQL ServerDa clic en la siguiente imagen para acceder al recurso:
U1 T2 Actividad 3 (Individual)
Indicaciones: Utilizando el gráfico de permisos, elabora un reporte PDF en donde identifiques los roles (son los que están de color verde) y de cada uno de ellos enlista sus permisos (son hacia donde apuntan las flechas). Los roles que se mencionan son:
Da clic en la siguiente imagen para acceder al recurso:
U1 T3 Actividad 1 (Individual)
Indicaciones: Elabora una base de datos que registre a los usuarios los cuales van a tener una categoria la cual va a tener una serie de permisos. Los permisos pueden repetirse en diferentes categorias y puede haber muchas categorias con diferentes permisos. Los permisos pueden ser padre, hijos, es decir, el permiso 1 puede ser padre del permiso 2 y 3, y el permiso 4 y 5 pueden pertenecer al permiso 2.
Indicaciones: Elabora un reporte PDF que cumpla con los criterios de la rúbrica de evaluación, en donde deberás incluir lo siguiente:
Da clic en la siguiente imagen para acceder al recurso de la explicación sobre funciones en SQL Server:
Estructura de una funciónA continuación se muestra la estructura de una función en SQL Server:
CREATE FUNCTION nombre_funcion(@parametro tipo_parametro) RETURNS tipo_parametro AS BEGIN DECLARE @variable tipo_variable SET @variable = @parametro + accion; RETURN(@variable) END
Crea una tabla products con los siguientes campos:
CREATE TABLE products ( Id int, Name varchar, Price money );
Función que calcule el iva del precio de cada producto:
CREATE FUNCTION iva(@date money) RETURNS money AS BEGIN DECLARE @iva money SET @iva=@date*.12 RETURN(@iva) END
Para mandar llamar la función iva sobre una consulta SELECT se hace de la siguiente manera:
SELECT Price, dbo.iva(Price) AS iva FROM Products;
Función que calcule el iva del precio de cada producto:
CREATE FUNCTION total(@date money) RETURNS money AS BEGIN DECLARE @total money SET @total=@date + dbo.iva(@date) RETURN(@total) END
Para mandar llamar la función iva sobre una consulta SELECT se hace de la siguiente manera:
SELECT Price, dbo.iva(Price) AS iva, dbo.total(Price) AS total FROM Products;
Función que calcule el iva del precio de cada producto:
CREATE FUNCTION descuento(@date money) RETURNS money AS BEGIN DECLARE @desc money SET @desc=dbo.total(@date)*0.9 RETURN(@desc) END
Para mandar llamar la función iva, total y descuento sobre una consulta SELECT se hace de la siguiente manera:
SELECT Price, dbo.iva(Price) AS iva, dbo.total(Price) AS total, dbo.descuento(Price) AS descuento FROM Products;
Para borrar la función iva se utiliza el siguiente comando:
DROP FUNCTION iva;
Se pueden declarar funciones con condición:
CREATE FUNCTION comision(@valor money) RETURNS money AS BEGIN DECLARE @resultado money IF @valor>=15 BEGIN SET @resultado= @valor * 1.10 END ELSE BEGIN SET @resultado=@valor END RETURN @resultado END
Indicaciones: En grupo, resuelvan lo siguiente. Crea una tabla alumnos con los siguientes campos: matrícula, nombre, apellidos, año de ingreso, cuatrimestre y sección. Crea una tabla materias con: código, nombre, descripción. Las materias pertenecen a un cuatrimestre. Dependiendo del cuatrimestre en el que se encuentre el alumno, serán las materias que este cursando. Las materias que curse el alumno guardarán tres calificaciones. Crear las siguientes funciones:
Da clic en la siguiente imagen para acceder al recurso de la explicación sobre procedimientos almacenados en SQL Server:
Estructura de un procedimiento almacenadoA continuación se muestra la estructura de un procedimiento almacenado:
CREATE PROC NOMBREPROCEDIMIENTO @parametro tipo_dato AS SENTENCIAS SQL; GO
Creamos una tabla:
CREATE TABLE Clientes ( Id int, Nombre varchar, Apellido_P varchar )
Para crear un procedimiento almacenado para mostrar los clientes:
CREATE PROC proc_clientes @nombre varchar(30) AS BEGIN SELECT Apellido_P, Nombre FROM Clientes WHERE Nombre = @nombre; END GO
Para mandar llamar un procedimiento almacenado se utiliza:
CALL proc_clientes('aaron');
Da clic en la siguiente imagen para acceder al recurso de la explicación sobre funciones frente a procedimientos almacenados en SQL Server:
U2 T1 Actividad 2 (Individual)
Indicaciones: Tomando como referencia el tercer enlace, implementa cada uno de los seis puntos y explica la diferencia que tiene de usar funciones vs procedimientos almacenados en cada uno de ellos. Al final, incluye las capturas y la descripción en un reporte PDF.
U2 T1 Actividad 3 (Individual)
Indicaciones: Elabora un documento PDF en donde incluyas una serie de consultas para conocer más sobre las funciones incorporadas en SQL, elabora un documento en donde incluyas captura de pantalla del resultado de cada función:
Da clic en la siguiente imagen para ver el tutorial de cómo implementar un procedimiento almacenado en un proyecto de Windows Forms C#:
U2 T1 Actividad 4 (Individual)
Indicaciones: Tomando como referencia el tutorial anterior, elabora un CRUD donde implementes un procedimiento almacenado. El CRUD puede ser referente a una tabla la cual deberás indicarle al docente. Realiza un documento PDF con portada donde incluyas las capturas de pantalla y los pasos necesarios para crear el proyecto.
Da clic en la siguiente imagen para conocer acerca de los triggers o disparadores:
Ejemplos de TriggersDa clic en la siguiente imagen para ver los ejemplos de triggers en SQL:
U2 T2 Actividad 1 (Individual)
Indicaciones: Realiza un reporte PDF en donde incluyas capturas de pantalla donde implementes los ejemplos del enlace anterior.
Da clic en la siguiente imagen para conocer acerca de las transacciones:
U2 T3 Actividad 1 (Individual)
Indicaciones: Elabora un mapa mental que explique las propiedades ACID y los niveles de aislamiento en transacciones SQL. Anéxalos en un documento PDF y súbelo al Moodle.
Ejemplo de transaccionesDa clic en la siguiente imagen para conocer acerca de las transacciones:
U2 T3 Actividad 2 (Individual)
Indicaciones: Elabora un reporte PDF en donde incluyas capturas de pantalla que comprueben que implementaste el código del enlace anterior.
Indicaciones: Elabora un reporte PDF que cumpla con los criterios de la rúbrica de evaluación, en donde deberás incluir lo siguiente:
Indicaciones: Elabora un reporte PDF que cumpla con los criterios de la rúbrica de evaluación, en donde deberás incluir lo siguiente:
Indicaciones: Elabora un reporte PDF que cumpla con los criterios de la rúbrica de evaluación, en donde deberás incluir lo siguiente: