Base de datos de traballadores
Ir a la navegación
Ir a la búsqueda
Sumario
Enunciado
A base de datos traballadores serve para levar control dos empregados, departamentos e centros dunha empresa.
Tarefa
Executa o seguinte script para mediante DDL xenerar o esquema da base de datos e con DML cargar con datos as diferentes táboas.
1 -- Creación da base de datos 2 create database if not exists xxx_traballadores 3 character set utf8 4 collate utf8_spanish_ci; 5 -- Activación da base de datos 6 use xxx_traballadores ; 7 -- Creación e carga de datos da táboa centro. 8 -- Contén datos dos centros de traballo da empresa 9 create table centro ( 10 cenNumero int(11) not null, 11 cenNome char(30) default null, 12 cenEnderezo char(30) default null, 13 primary key (cenNumero), 14 key cenNome (cenNome) 15 ) engine=myisam ; 16 insert into centro 17 values (10,'SEDE CENTRAL','C/ ALCALA, 820-MADRID'),(20,'RELACION CON CLIENTES','C/ ATOCHA, 405-MADRID'),(30,'DELEGACION GALICIA','C/ MAIOR, 27-LUGO'); 18 -- Creación e carga de datos da táboa departamento. 19 -- Contén información dos departamentos da empresa 20 create table departamento ( 21 depNumero int(11) not null, 22 depNome char(20) default null, 23 depDirector int(11) not null, 24 deptipoDirector char(1) default null, 25 depPresuposto decimal(9,2) default null, 26 depDepende int(11) default null comment 'número de departamento do que depende', 27 depCentro int(11) default null comment 'número do centro ao que pertenece este departamento', 28 depEmpregados smallint unsigned default null comment 'número de empregados que traballan no departamento', 29 primary key (depNumero), 30 key depDirector (depDirector), 31 key depDepende (depDepende), 32 key depCentro (depCentro), 33 key depNome (depNome) 34 ) engine=myisam; 35 insert into departamento (depNumero,depCentro,depDirector,deptipoDirector,depPresuposto,depDepende,depNome) 36 values (122,30,350,'F','60000.00',120,'PROCESO DE DATOS'),(121,10,110,'P','200000.00',120,'PERSOAL'),(120,10,150,'P','30000.00',100,'ORGANIZACION'),(112,20,270,'F','90000.00',110,'SECTOR SERVICIOS'),(111,20,400,'P','111000.00',110,'SECTOR INDUSTRIAL'),(110,20,180,'P','15000.00',100,'DIRECCION COMERCIAL'),(130,10,310,'P','20000.00',100,'FINANZAS'),(200,20,600,'F','80000.00',100,'TRANSPORTES'),(100,10,260,'P','120000.00',null,'DIRECION XERAL'); 37 -- Creación e carga de datos da táboa empregado. 38 -- Contén información dos traballadores da empresa 39 create table empregado ( 40 empNumero int(11) not null auto_increment, 41 empDepartamento int(11) not null comment 'número de departamento no que traballa o empregado', 42 empExtension smallint(6) not null comment 'extensión telefónica para o traballador', 43 empDataNacemento date default null, 44 empDataIngreso date default null comment 'data de ingreso na empresa', 45 empSalario decimal(6,2) default null, 46 empComision decimal(6,2) default null, 47 empFillos smallint(6) default null comment 'número de fillos que ten o traballador', 48 empNome char(20) not null, 49 primary key (empNumero), 50 key empDepartamento (empDepartamento), 51 key empNome (empNome) 52 ) engine=myisam; 53 insert into empregado () 54 values (510,110,550,'1953-03-12','1996-11-01','2000.00',null,1,'CAMPOS, ROMULO'),(500,111,750,'1975-08-17','2001-01-01','2000.00','100.00',0,'VAZQUEZ, HONORIA'),(490,112,880,'1984-04-15','2010-01-01','1800.00','100.00',0,'TORRES, HORACIO'),(480,111,760,'1955-02-11','1986-02-28','800.00','100.00',1,'PINO, DIANA'),(450,112,880,'1989-08-29','2014-02-28','600.00','100.00',0,'PEREZ, SABINA'),(440,111,760,'1980-08-04','2013-02-28','650.00','100.00',0,'DURAN, LIVIA'),(430,122,650,'1957-09-03','1988-11-19','500.00',null,1,'MORA, VALERIANA'),(420,130,450,'1955-08-30','1988-11-19','700.00',null,0,'FIERRO, CLAUDIA'),(410,122,660,'1956-05-23','2001-10-13','1750.00',null,0,'LOPEZ, AZUCENA'),(400,111,780,'1957-06-27','1987-11-01','2700.00',null,0,'LARA, LUCRECIA'),(390,110,500,'1956-12-29','1999-10-08','2150.00',null,1,'MORAN, CARMEN'),(380,112,880,'1955-02-06','1990-01-01','1800.00',null,0,'MARTIN, MICAELA'),(370,121,360,'1957-04-30','1987-01-20','1900.00',null,1,'RUIZ, FABIOLA'),(360,111,750,'1968-09-06','2002-10-10','2500.00','100.00',2,'LARA, DORINDA'),(350,122,610,'1959-02-10','1984-09-10','2250.00',null,1,'CAMPS, AURELIO'),(330,112,850,'1958-06-28','1992-03-01','800.00','90.00',0,'DIEZ, AMELIA'),(320,122,620,'1957-11-03','1978-02-05','1100.00',null,2,'SANZ, CORNELIO'),(310,130,480,'1956-09-29','2013-01-15','2100.00',null,0,'GARCIA, AUGUSTO'),(290,120,910,'1957-10-08','1995-02-14','1200.00',null,3,'GIL, GLORIA'),(285,122,620,'1959-09-03','1999-02-15','550.50',null,0,'POLO, OTILIA'),(280,130,410,'1958-08-20','1988-10-08','600.60',null,5,'FLOR, DOROTEA'),(270,112,800,'1955-03-30','1987-09-10','1900.00','80.00',3,'GARCIA, OCTAVIO'),(260,100,220,'1954-10-11','1992-07-12','3600.00',null,6,'LOPEZ, ANTONIO'),(250,100,250,'1956-09-04','1987-03-01','1550.50',null,0,'ALBA, ADRIANA'),(240,111,760,'1988-01-05','2014-02-24','800.25','100.00',3,'SANZ, LAVINIA'),(210,100,200,'1956-08-07','1995-01-22','1000.60',null,2,'GALVEZ, PILAR'),(190,121,350,'1957-03-21','1985-02-11','610.10',null,4,'VEIGA, JULIANA'),(180,110,508,'1959-08-26','1996-03-18','2200.00','50.00',2,'PEREZ, MARCOS'),(160,111,740,'1959-05-17','2012-11-11','1550.00','110.00',2,'AGUIRRE, AUREO'),(150,120,340,'1960-06-18','2000-01-15','2200.00',null,0,'PEREZ, JULIO'),(130,112,810,'1961-07-19','1996-02-01','1500.00','110.00',2,'TEROL, LUCIANO'),(120,112,840,'1950-04-17','1968-10-01','1200.00','110.00',1,'LASA, MARIO'),(110,121,350,'1951-09-19','2003-02-15','2000.00',null,3,'PONS, CESAR'),(550,111,780,'1952-11-19','1988-01-21','680.00','120.00',0,'SANTOS,SANCHO'),(600,200,500,'1954-03-21','1984-01-15','1500.00','100.00',2,'RUIZ, ANTONIO'),(650,111,880,'1953-11-19','1988-11-08','1200.00','120.00',2,'TELLO,LUIS'),(652,200,520,'1985-03-21','2001-01-15','900.00','100.00',1,'ARANGO, BERTA'),(653,200,112,'1979-10-11','2010-11-11','1100.00',null,0,'FERNANDEZ, CARMEN'),(654,120,88,'1989-08-14','2014-05-15','900.00','50.00',0,'SANCHEZ, MARCOS');
Para reflexionar
Sentenzas e modelo E-R
Revisa as sentenzas do script:
- comprendes o seu funcionamento? Podes indagar sobre aquelas que non comprendas
- pensa como pode ser o modelo E-R que esboza ese script
Relacional e descripción
A base de datos está formada por un grupo de táboas, relacionadas entre si, tal e como se mostra no seguinte grafo relacional e se describe a continuación.
| Nome columna | Tipo | Null | Clave | Observacións |
|---|---|---|---|---|
| cenNumero | int | Non | Primaria | Número co que se identifica. |
| cenNome | char(30) | Índice | Nome. | |
| cenEnderezo | char(30) | Enderezo. |
| Nome columna | Tipo | Null | Clave | Observacións |
|---|---|---|---|---|
| empNumero | int | Non | Primaria | Número co que se identifica. |
| empDepartamento | int | Non | Índice | Número do departamento no que traballa. |
| empExtension | smallint | Non | Extensión telefónica para o empregado. Pode compartirse entre empregados de diferentes departamentos. | |
| empDataNacemento | date | Data de nacemento. | ||
| empDataIngreso | date | Data de ingreso na empresa. | ||
| empSalario | decimal(6,2) | Salario mensual en euros. | ||
| empComision | decimal(6,2) | Comisión mensual. | ||
| empFillos | smallint | Número de fillos. | ||
| empNome | char(20) | Non | Índice | Nome do empregado coa forma: primeiro apelido, nome. |
| Nome columna | Tipo | Null | Clave | Observacións |
|---|---|---|---|---|
| depNumero | int | Non | Primaria | Número co que se identifica. |
| depNome | char(20) | Índice | Nome. | |
| depDirector | int | Non | Índice | Número do empregado director do departamento. |
| deptipoDirector | char(1) | Tipo de directo: P (en propiedade, é dicir, titular), F (en funcións). | ||
| depPresuposto | decimal(9,2) | Cantidade en euros de presuposto anual. | ||
| depDepende | int | Índice | Número do departamento do que depende. | |
| depCentro | int | Índice | Número do centro ao que pertence. | |
| depEmpregados | smallint unsigned | Número de empregados que traballan no departamento. |
Táboas non transaccionais
As táboas son MyIsam (non transaccionais) e por tanto non teñen definidas claves foráneas. Investiga:
- que son as táboas non transaccionais
- como funciona o motor MyISAM? cal é a sua principal ventaxa? cal é o seu principal inconvinte? por qué motor está sendo maioritariamente reemplzado en versións de MySQL posteriores á 5.5?
Para continuar
Podes facer as tarefas que se indican na seguinte unidade sobre esta base de datos, na Práctica DML sobre a base de datos traballadores