(Sistema de gestión de base de datos) o en inglés Database management system (DBMS), es una agrupación de programas que sirven para definir, construir y manipular una base de datos.
* Definir una base de datos: consiste en especificar los tipos de datos, estructuras y restricciones para los datos que se almacenarán.
* Contruir una base de datos: es el proceso de almacenar los datos sobre algún medio de almacenamiento.
* Manipular una base de datos: incluye funciones como consulta, actualización, etc. de bases de datos.
CONCEPTO
Es importante saber que las bases de datos es un sistema que permite almacenar, manipular ,
Consultar todo tipo de información.las base de datos poseen diseño y tambien son personales
O para un publico u empresa. Dentro del diseño existen distintos tipos de modelos de los datos
Que se han de almacenar,una BD es conceptual y estructural .
Miremos el siguiente ejemplo, de una estructura de las bases de datos.
Esta me permitira establecer la relacion entre los centros de salud y las clinicas en la ciudad de buenaventura,el tipo de carnet, la entidad de salud a la que esta afiliado centro de atención,remisiony tipo de urgencias.
ysql> describe administraccion;
---------------------+-------------+------+-----+---------+-------+
Field | Type | Null | Key | Default | Extra |
---------------------+-------------+------+-----+---------+-------+
nom_administrador | varchar(30) | NO | | | |
id_administrador | varchar(30) | NO | PRI | | |
edad_administrador | char(20) | NO | | | |
telef_administrador | char(20) | NO | | | |
direc_administrador | varchar(30) | NO | | | |
id_usuario | varchar(30) | NO | | | |
esper_laboral | varchar(30) | NO | | | |
---------------------+-------------+------+-----+---------+-------+
insert into administraccion values('aurelio moreno','14576048',38,2427886,'call1#39-59 E/caristico','1457847','13 años');
insert into administraccion values('dora torres','14578075',45,2428754,'call7#10-45 stafe','45678947','10 años');
insert into administraccion values('diana torres','56487954',37,2458796,'call7#18-47 stafe','456789365','19 años');
insert into administraccion values('marlen palacios','56487854',21,2428399,'call7#18-10 ruiz','126789365','28 años');
insert into administraccion values('omar ruiz','12587954',50,2450796,'kra7#18-47 stafe','456781565','49 años');
insert into administraccion values('omar castro','12587923',15,2411796,'kra7#14-47 centro','156781565','41 años');
mysql> describe archivador;
+------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| nom_archivador | varchar(30) | NO | | | |
| id_archivador | varchar(30) | NO | | | |
| edad_archivador | char(20) | NO | | | |
| telef_archivador | char(20) | NO | | | |
| direc_archivador | varchar(30) | NO | | | |
| esper_laboral | varchar(30) | NO | | | |
| id_usuario | varchar(30) | NO | PRI | | |
+------------------+-------------+------+-----+---------+-------+
7 rows in set (0.05 sec)
insert into archivador values('pedro peres','63278945',20,3136542517,'call4#17-75 carmelo','15 años','12458715');
insert into archivador values('jose castro','63268972',47,3136542614,'call4#12-15 dorado','12 años','14458715');
insert into archivador values('danilo montero','23268972',18,3136532614,'kra4#12-15 R9','25 años','14638715');
insert into archivador values('danilo portela','14268972',23,3136533514,'kra4#12-12 piolin','21 años','14636315');
insert into archivador values('manuel medina','14268972',20,3136532576,'kra4#78-15 cali','17 años','14568715');
insert into archivador values('pedro peres','63278945',20,3136542517,'call4#17-75 carmelo','15 años','12458715');
insert into archivador values('rito moreno','632789126',63,3136546321,'call4#13-6 lopera','27 años','12458678');
mysql> describe carnets;
+--------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+-------------+------+-----+---------+-------+
| nom_carnet | varchar(30) | NO | | | |
| tipo_carnet | varchar(30) | NO | | | |
| entidad_carnet | varchar(30) | NO | | | |
| id_usuario | varchar(30) | NO | PRI | | |
| estrato_carnet | varchar(30) | NO | | | |
| fecha_carnet | varchar(30) | NO | | | |
| vencimiento_carnet | varchar(30) | NO | | | |
| numero_orden | varchar(30) | NO | | | |
| nom_usuario | varchar(30) | NO | | | |
| id_archivador | varchar(30) | NO | | | |
+--------------------+-------------+------+-----+---------+-------+
10 rows in set (0.02 sec)
insert into carnets values('caprecon','subsidiado','luis ablanque','12458678','01','05/06/2010','12/08/2014','7610923207','carlos velez','632789126');
insert into carnets values('coopsalud','subsidiado','luis ablanque','10458678','02','06/06/2010','12/08/2014','7610923321','carlos perez','732789126');
insert into carnets values('ensanar','subsidiado','luis ablanque','10458636','03','06/06/1995','12/08/2010','5400923321','antoni perez','732789133');
insert into carnets values('confamar','subsidiado','clinibuenaventura','12458636','01','04/06/1996','12/04/2010','7700923321','arturo ruiz','732789126');
insert into carnets values('confenalco','subsidiado','deptal cali','12456536','01','04/06/1997','12/09/2010','3333923321','jose lara','12356897');
mysql> describe consultaexterna;
+----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| nom_doctor | varchar(30) | NO | | | |
| cod_consulta | varchar(30) | NO | | | |
| tipo_consulta | char(20) | NO | | | |
| telef_consulta | char(20) | NO | | | |
| sec_consulta | varchar(30) | NO | | | |
| hora_consulta | varchar(30) | NO | | | |
| fecha_consulta | varchar(30) | NO | | | |
| id_factura | varchar(30) | NO | PRI | | |
+----------------+-------------+------+-----+---------+-------+
8 rows in set (0.03 sec)
insert into consultaexterna values('nelsol castro','001',12,2425068,'0001','2 pm','01/02/2010','2121');
insert into consultaexterna values('mauro lopez','002',13,2425056,'0002','3 pm','02/03/2010','2132');
insert into consultaexterna values('jose niñes','003',14,2442056,'1002','10 am','07/04/2010','3132');
insert into consultaexterna values('pedro infante','113',23,5552056,'100','11 am','07/04/1998','4532');
insert into consultaexterna values('pedro infante','113',23,5552056,'100','11 am','07/04/1998','4532');
insert into consultaexterna values('alexa castro','213',45,1552056,'11','11 am','05/06/1998','1232');
mysql> describe director;
+----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| nom_director | varchar(30) | NO | | | |
| id_director | varchar(30) | NO | | | |
| edad_director | char(20) | NO | | | |
| telef_director | char(20) | NO | | | |
| direc_director | varchar(30) | NO | | | |
| id_medico | varchar(50) | NO | PRI | | |
| esper_laboral | varchar(30) | NO | | | |
+----------------+-------------+------+-----+---------+-------+
7 rows in set (0.03 sec)
insert into director values('manolo peteche','36985241',45,58276,'kra12#4-5 lopera','47123546','10 años');
insert into director values('rosa aramburo','363245241',15,56276,'call12#4-5 ruiz','45623546','11 años');
insert into director values('zuly caicedo','355245241',25,26399,'call23#14-5 ruiz','23623546','5 años');
insert into director values('fernando torres','111245241',17,35399,'call23#1-1 ruiz','23623575','6 años');
insert into director values('diana torres','111245555',25,35399,'kra23#1-1 ruiz','23621275','26 años');
insert into director values('martha torres','333245555',8,55399,'kra23#1-12 carmelo','23721275','20 años');
describe emfermeras;
| Field | Type | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| nom_enfermera | varchar(50) | NO | | | |
| num_enfermera | varchar(30) | NO | | | |
| edad_enfermera | char(20) | NO | | | |
| id_enfermera | varchar(20) | NO | | | |
| id_recepcion | varchar(30) | NO | PRI | | |
| direc_enfermera | varchar(20) | NO | | | |
+-----------------+-------------+------+-----+---------+-------+
insert into enfermeras values('zindyplaza','25',27,'36974185','000f','k4#4-3');
insert into enfermeras values('maelen martinez','15',20,'31974186','100f','call4#4-3');
insert into enfermeras values('Jair murillo','20',21,'31974177','200f','call4#4-6 centro');
insert into enfermeras values('Jair murillo','20',21,'31974177','200f','call4#4-6 centro');
insert into enfermeras values('viviana torres','32',11,'33374177','300f','call4#12-16 centro');
mysql> describe entidades;
+------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| nom_entidad | varchar(30) | NO | | | |
| tipo_carnet | varchar(30) | NO | PRI | | |
| nom_usuario | varchar(30) | NO | | | |
| historia_usuario | varchar(30) | NO | | | |
| nom_medico | varchar(30) | NO | | | |
+------------------+-------------+------+-----+---------+-------+
5 rows in set (0.03 sec)
insert into entidades values('caprecon','subsidiado','carlos velez','023d','justino dominguez');
insert into entidades values('ensanasr','subsid','carlos ruiz','024d','jose dominguez');
insert into entidades values('coosalud','subsidiad','diana velez','013d','sandra ramirez');
insert into entidades values('coosalup','subsi','diana velez','014d','sandra castro');
insert into entidades values('confamar','sub','maria soliz','014f','claritza murillo');
mysql> describe facturacion;
+-----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| nit_hospital | varchar(30) | NO | | | |
| nom_hospital | varchar(30) | NO | | | |
| fecha_factura | varchar(30) | NO | | | |
| costo_factura | char(30) | NO | | | |
| tip_medicamento | varchar(30) | NO | | | |
| nom_usuario | varchar(30) | NO | | | |
| id_factura | varchar(30) | NO | PRI | | |
| cod_consulta | varchar(30) | NO | | | |
+-----------------+-------------+------+-----+---------+-------+
insert into facturacion values('0000jh45l','Hosp moderlo','25/03/2010',45000,'generico','jhon salas','6875','025');
insert into facturacion values('1100jh45h','Hosp maria eugenia','15/04/2010',25000,'generico','justino vivas','7875','0025');
insert into facturacion values('1200jh45h','departamental','12/12/2010',15000,'generico','omar ruz','7275','10025');
insert into facturacion values('001122hj','luis ablanque','12/12/2010',15000,'generico','danilo montero','9696','333');
insert into facturacion values('111122hj','independenc','12/06/99',115000,'natural','petro montero','8996','3334');
mysql> describe medico;
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| nom_medico | varchar(50) | NO | | | |
| id_medico | varchar(50) | NO | PRI | | |
| telef_medico | varchar(50) | NO | | | |
| id_director | varchar(30) | NO | | | |
| espec_medico | varchar(50) | NO | | | |
+--------------+-------------+------+-----+---------+-------+
insert into medico values('nelsol castro','12345687','47874','47814786','internista');
insert into medico values('davi montero','22245687','32874','47855786','odontologo');
insert into medico values('estella nuñez','22245444','32777','474545786','ginecologa');
insert into medico values('rito moreno','1457645444','12345','745845786','general');
insert into medico values('aurelio moreno','14576048','2427886','7466666','general');
mysql> select* from medico;
+----------------+------------+--------------+-------------+--------------+
| nom_medico | id_medico | telef_medico | id_director | espec_medico |
+----------------+------------+--------------+-------------+--------------+
| nelsol castro | 12345687 | 47874 | 47814786 | internista |
| aurelio moreno | 14576048 | 2427886 | 7466666 | general |
| rito moreno | 1457645444 | 12345 | 745845786 | general |
| estella nuñez | 22245444 | 32777 | 474545786 | ginecologa |
| davi montero | 22245687 | 32874 | 47855786 | odontologo |
+----------------+------------+--------------+-------------+--------------+
mysql> describe recepcion;
+-----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| nom_recepcion | varchar(30) | NO | | | |
| id_recepcion | varchar(30) | NO | PRI | | |
| edad_recepcion | char(20) | NO | | | |
| telef_recepcion | char(20) | NO | | | |
| direc_recepcion | varchar(30) | NO | | | |
| id_enfermera | varchar(30) | NO | | | |
| esper_laboral | varchar(30) | NO | | | |
+-----------------+-------------+------+-----+---------+-------+
insert into recepcion values('Urdina salas','14145568',25,202425,'bloq#9','14568769','25 años');
insert into recepcion values('jenny castro','14145898',20,202425,'bloq#9','13568769','20 años');
insert into recepcion values('lily gusman','14145899',21,205525,'bloq#9','13561869','12 años');
insert into recepcion values('maryury sees','14145333',17,205555,'bloq#9','13561899','18 años');
insert into recepcion values('maryury mejia','14143533',45,205555,'bloq#9','13121899','20 años');
mysql> describe remisiones;
+------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| centro_salud | varchar(30) | NO | | | |
| nom_clinica | varchar(30) | NO | | | |
| fecha_remision | varchar(30) | NO | | | |
| fecha_atencion | varchar(30) | NO | | | |
| lugar_atencion | varchar(30) | NO | | | |
| centro_remision | varchar(30) | NO | | | |
| hora_atencion | varchar(30) | NO | | | |
| id_usuario | varchar(30) | NO | | | |
| carnet_usuario | varchar(30) | NO | | | |
| tipo_urgencia | varchar(30) | NO | | | |
| id_administrador | varchar(30) | NO | PRI | | |
| historia_cliente | varchar(30) | NO | | | |
+------------------+-------------+------+-----+---------+-------+
insert into remisiones values('Hosp moderlo','comfamar','05/10/2010','06/10/2010','buenaventura','modelo','2:pm','14145698','caprecon','fracturacraneo','25687491','12k');
insert into remisiones values('luis ablanque','Cli/Bentura','06/08/2010','15/10/2010','cali','carmelo','3:pm','11145698','coosalup','desmayo','25685691','25k');
insert into remisiones values('dptal','Cli/confenalco','06/08/2008','15/09/2010','buenaventura','san luis','4:pm','11178698','sisben','parto','25565691','15k');
insert into remisiones values('saluindpen','Cli/confenalco','12/08/2008','15/07/2010','buenaventura','san luis','10:am','11178678','ensanar','accidente','22265691','3k');
insert into remisiones values('hospisanluis','Cli/sordos y ciegos','25/08/2008','31/07/2010','buenaventura','R9','10:am','14478678','ensanar','sordera','227775691','14k');
mysql> describe urgencias;
+------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| tipo_urgencia | varchar(30) | NO | | | |
| tipo_carnet | varchar(30) | NO | PRI | | |
| fecha_remision | varchar(30) | NO | | | |
| nom_usuario | varchar(30) | NO | | | |
| fecha_llegada | varchar(30) | NO | | | |
| fecha_salida | varchar(30) | NO | | | |
| nom_doctor | varchar(30) | NO | | | |
| carnet_usuario | varchar(30) | NO | | | |
| historia_usuario | varchar(30) | NO | | | |
+------------------+-------------+------+-----+---------+-------+
insert into urgencias values('fracturacraneo','caprecon','04/02/2010','jose odoñez','21/05/2010','01/06/2010','emiliano suleta','ensanar','45l');
insert into urgencias values('parto prematuro','ensanar','05/02/2010','jose castro','21/12/2010','01/12/2010','emilio dias','caprecon','12l');
insert into urgencias values('dolor cabeza','sisben','05/02/1998','maria castro','07/12/2010','01/12/1995','emilio ortiz','coosalup','232l');
insert into urgencias values('preinfarto','sos','23/02/1998','domingo lerma','07/12/1996','02/12/1995','emiliano saac','selvasalud','22k');
insert into urgencias values('preclancia','sert','23/10/1998','diana torres','07/12/2010','02/12/2010','sixta bonilla','selvasalud','1l');
mysql> SELECT NOM_HOSPITAL,nom_entidad from facturacion,entidades;
+--------------------+-------------+
| NOM_HOSPITAL | nom_entidad |
+--------------------+-------------+
| Hosp moderlo | confamar |
| departamental | confamar |
| Hosp maria eugenia | confamar |
| independenc | confamar |
| luis ablanque | confamar |
| Hosp moderlo | coosalup |
| departamental | coosalup |
| Hosp maria eugenia | coosalup |
| independenc | coosalup |
| luis ablanque | coosalup |
| Hosp moderlo | ensanasr |
| departamental | ensanasr |
| Hosp maria eugenia | ensanasr |
| independenc | ensanasr |
| luis ablanque | ensanasr |
| Hosp moderlo | coosalud |
| departamental | coosalud |
| Hosp maria eugenia | coosalud |
| independenc | coosalud |
| luis ablanque | coosalud |
| Hosp moderlo | caprecon |
| departamental | caprecon |
| Hosp maria eugenia | caprecon |
| independenc | caprecon |
| luis ablanque | caprecon |
+--------------------+-------------
mysql> select nom_clinica,centro_salud,tipo_urgencia from remisiones;
+---------------------+---------------+----------------+
| nom_clinica | centro_salud | tipo_urgencia |
+---------------------+---------------+----------------+
| Cli/confenalco | saluindpen | accidente |
| Cli/sordos y ciegos | hospisanluis | sordera |
| Cli/confenalco | dptal | parto |
| Cli/Bentura | luis ablanque | desmayo |
| comfamar | Hosp moderlo | fracturacraneo |
+---------------------+---------------+----------------+
mysql> select nom_carnet,nom_usuario,nom_doctor from carnets, consultaexterna;
+------------+--------------+---------------+
| nom_carnet | nom_usuario | nom_doctor |
+------------+--------------+---------------+
| ensanar | antoni perez | alexa castro |
| coopsalud | carlos perez | alexa castro |
| confenalco | jose lara | alexa castro |
| confamar | arturo ruiz | alexa castro |
| caprecon | carlos velez | alexa castro |
| ensanar | antoni perez | nelsol castro |
| coopsalud | carlos perez | nelsol castro |
| confenalco | jose lara | nelsol castro |
| confamar | arturo ruiz | nelsol castro |
| caprecon | carlos velez | nelsol castro |
| ensanar | antoni perez | mauro lopez |
| coopsalud | carlos perez | mauro lopez |
| confenalco | jose lara | mauro lopez |
| confamar | arturo ruiz | mauro lopez |
| caprecon | carlos velez | mauro lopez |
| ensanar | antoni perez | jose niñes |
| coopsalud | carlos perez | jose niñes |
| confenalco | jose lara | jose niñes |
| confamar | arturo ruiz | jose niñes |
| caprecon | carlos velez | jose niñes |
| ensanar | antoni perez | pedro infante |
| coopsalud | carlos perez | pedro infante |
| confenalco | jose lara | pedro infante |
| confamar | arturo ruiz | pedro infante |
| caprecon | carlos velez | pedro infante |
+------------+--------------+---------------+
mysql> select fecha_remision,fecha_atencion,lugar_atencion,id_medico from remisiones,medico;
+----------------+----------------+----------------+------------+
| fecha_remision | fecha_atencion | lugar_atencion | id_medico |
+----------------+----------------+----------------+------------+
| 12/08/2008 | 15/07/2010 | buenaventura | 12345687 |
| 25/08/2008 | 31/07/2010 | buenaventura | 12345687 |
| 06/08/2008 | 15/09/2010 | buenaventura | 12345687 |
| 06/08/2010 | 15/10/2010 | cali | 12345687 |
| 05/10/2010 | 06/10/2010 | buenaventura | 12345687 |
| 12/08/2008 | 15/07/2010 | buenaventura | 14576048 |
| 25/08/2008 | 31/07/2010 | buenaventura | 14576048 |
| 06/08/2008 | 15/09/2010 | buenaventura | 14576048 |
| 06/08/2010 | 15/10/2010 | cali | 14576048 |
| 05/10/2010 | 06/10/2010 | buenaventura | 14576048 |
| 12/08/2008 | 15/07/2010 | buenaventura | 1457645444 |
| 25/08/2008 | 31/07/2010 | buenaventura | 1457645444 |
| 06/08/2008 | 15/09/2010 | buenaventura | 1457645444 |
| 06/08/2010 | 15/10/2010 | cali | 1457645444 |
| 05/10/2010 | 06/10/2010 | buenaventura | 1457645444 |
| 12/08/2008 | 15/07/2010 | buenaventura | 22245444 |
| 25/08/2008 | 31/07/2010 | buenaventura | 22245444 |
| 06/08/2008 | 15/09/2010 | buenaventura | 22245444 |
| 06/08/2010 | 15/10/2010 | cali | 22245444 |
| 05/10/2010 | 06/10/2010 | buenaventura | 22245444 |
| 12/08/2008 | 15/07/2010 | buenaventura | 22245687 |
| 25/08/2008 | 31/07/2010 | buenaventura | 22245687 |
| 06/08/2008 | 15/09/2010 | buenaventura | 22245687 |
| 06/08/2010 | 15/10/2010 | cali | 22245687 |
| 05/10/2010 | 06/10/2010 | buenaventura | 22245687 |
+----------------+----------------+----------------+------------+
lunes, 29 de marzo de 2010
COMANDOS DE MYSQL
ALGUNOS COMANDOS PARA EJECUTAR BASES DE DATOS (BD)
SKIP ß ---------- Avanza un registro en la base de datos.
SKIP + (#) ß ---------- Avanza varios registros.
SKIP – (#) ß ---------- Retrocede varios registros.
GOTO # ß --------- Para localizar un registro específico.
GOTO TOP ß --------- Se ubica en el primer registro.
GOTO BOTTOM ß --------- Se ubica en el último registro
DELETE RECORD 8 ß ---- Borra el registro número ocho
RECALL RECORD 8 ß ----- Recupera el registro número ocho
DELETE FILE NOM_ARCH---- Para borrar un archivo incorporado al directorio del DB
FIND ----------- cadena de caracteres
SEEK----------- expresión
SET CARRY on / OFF
ON: Permite arrastrar el contenido del último registro tecleado a uno nuevo
OFF: Desactiva el arrastre del último registro
CLEAR ß ----------- Borra Pantalla
.@2,3 CLEAR ß ------------ Borra a partir del renglón dos columna tres
.@8,1 CLEAR TO 20,70 ß ------- Borra a partir del renglón ocho columna
Uno hasta el renglón veinte columnas
PULSE -------- para iniciar
CLOSE DATABASES ------à Cierra archivos de datos (*.DBF)
CLOSE INDEX ------à Cierra archivos de índice (*.NDX)
CLOSE FORMAT ------à Cierra archivos de formato (*.FMT)
CLOSE ALL & CLEAR ALL--------- à Cierra todos los archivos y limpia memoria
DO WHILE – ENDO-- dentro de esta orden se puede utilizar una variable lógica llamada
Char(n) ----------- cadena de caracteres de longitud fija
Varchar(n) ---------- cadena de caracteres de longitud variables
Tinyblob ------------- objeto binario largo (muy pequeño)
Blob --------- objeto binario largo (pequeño)
Mediumblob ----------- objeto binario largo (medio)
Longblob ------------objeto binario largo (grande)
Tinytext -------------cadena de texto muy pequeña
Text ---------- cadena de texto pequeña
Mediumtext ---------- cadena de texto media
Longtext -------------- cadena de texto larga
Enum ------------- una enumeración
Set ---------- un conjunto
Date------------ valor fecha (aaaa-mm-dd)
Time --------- valor de hora (hh-mm-ss)
Datetime----------- valor de fecha y hora
Timestamp---------- valor de lapso de tiempo (aaaammddhhmmss)
Year----------- valor de año
Null ----------- admite valores nulos
No null ------- rechaza dejar el campo en blanco
Default ------------ permite establecer un valor por defecto
Columnas numéricas:
auto_increment ---------- para generar identificadores únicos o valores en serie.
Unisgned ------- rechazo de valores negativos
Binary -------trata los valores como cadenas binarias (campos char y varchar)
Primary key ---------- columna indexada para búsqueda rápida. Clave principal, solo puede haber una
Unique -------- crea un índice con valores únicos
Index, key --------son sinónimos y crean índices que pueden contener valores repetidos.
Name: nombre de la tabla.
Tipe: tipo de tablas
Row format: formato de almacenamiento de la fila
Rows: número de filas
Avg_row_length: promedio de bytes usados por las filas de la tabla
Data_length: tamaño actual en bytes de fichero de tabla
Max_data_length: tamaño máximo en bytes que puede alcanzar el archivo.
Index_length: tamaño actual en bytes del archivo de índice.
Data_free: número de bytes en el archivo de datos que no se utilizan.
Auto_increment: el siguiente valor generado por una columna con la propiedad.
Create_time: hora que se creo la tabla.
Update_time: hora de la última modificación
Check_time: última vez que la tabla fue reparada o revisada por myisamchk
Create_options: opciones adicionales especificadas.
Comment: comentarios aparecidos en la creación de la tabla.
lista cláusulas de comandos:
(1) Tipos de opciones permitidas:
all ---------- provoca el regreso de todas las filas
distinct, distinctrow ------- especifican que las líneas duplicadas deben ser eliminadas
high_prioruty ------ da mayor prioridad a la instrucción en el caso de espera.
sql_byg_result, sql_small_result ------ especifican que el conjunto de resultados será mas largo o más corto
straignt_join ------- fuerza a las tablas a unirse en el orden citado en la cláusula from
(2) Lista ------ especifica las columnas que deben devolverse, el símbolo “*” especifica que deben extraerse todas las columnas. La separación entre los diferentes nombres de columnas se hacen con el símbolo “,”.
(3)Cláusulas (en caso de haber varias cláusulas deben seguir el orden expuesto en la lista):
Intro outfile ‘nombre_fichero’ opciones ------ el resultado de la consulta es transferido a un fichero, paro lo cual debemos tener privilegio de crear el fichero y además este no debe existir. Las opciones de importanción son las siguientes:
[fields [terminate by ‘cadena’]a [opcionally] [enclosed by ‘carácter’]b [escape by ‘carácter’]c] [lines terminated by ‘carácter’] d
a)especifica el carácter o caracteres que delimitan valores dentro de la línea
b)especifica un carácter entrecomillado que se quita del final del campo de valores. OPTIONALLY establece que los valores solamente se entrecomillan para las columnas char y varchar
c)Se utiliza para especificar el carácter de escape especial
d)Especifica un carácter o caracteres que determinan el final de la línea.
Los caracteres especiales son los siguientes:
-\0 ascii 0
-\b retroceso
-\n línea nueva
-\r retorno de carro
-\s espacio
-\t tabulación
-\’ comilla simple
from tabla-tablas ------ especifica una o varias tablas desde las que se obtendrán las filas. Existen varias posibilidades de unión de tablas (mirar libro de mysql).
where expresión --------- establece una expresión que se aplica a las filas seleccionadas
group by lista_columnas ------- agrupa filas del conjunto de resultados de acuerdo con las columnas citadas.
having expresión ------- especifica una expresión secundaria para limitar filas después de satisfechas las condiciones expuestas en la cláusula where.
order by entero_unsigne|nombrecoluma|fórmula -------- indica como se va a clasificar el conjunto de resultados. Las posibilidades son:
asc –----- ascendente
desc –----- descendente
rand() –----- orden aleatorio
procedure nombre_procedimiento ------- indica un nombre de procedimiento al que serán
(1) Nombre: establece el nombre de la tabla sobre la que deseamos actuar.
(2)Lista_de_acción: establece una o varias acciones a realizar, las posibilidades son:
a)ADD INDEX [nombre _ índice][columna _ índice]: añade un índice a la tabla basado en la columna especificada. Si se especifican varias columnas deben ir separadas por comas.
b) ADD PRIMARY KEY [columna _ índice]: añade una clave principal siguiendo la columna establecida.
c) ADD UNIQUE [nombre _ índice][columna _ índice]: añade un índice de valor único a la tabla en función de la columna especificada.
d) ALTER [column] nombre _ columna (set default valor | drop default): modifica el valor dedo de una columna o reduce su valor predeterminado actual.
e) CHANGE [column] nombre _ columna declaración _ columna: cambia el nombre y la definición de una columna; nombre _ columna -> nombre de la columna a modificar, declaración _ columna -> es el valor de definición por el cual se debe regir la columna, sus opciones son las mismas que las señaladas para la creación de los campos de las tablas.
f) DROP [column] nombre _ columna: elimina la columna especificada.
CREATE DATABASE NOMBRE BASE;--- CREAR LA BASE DE DATOS.
USE NOMBRE BASE DE DATOS:----USAR LA BASE DE DATOS.
CREATE TABLE NOMBRE ---CREAR UNA TABLA.
SKIP ß ---------- Avanza un registro en la base de datos.
SKIP + (#) ß ---------- Avanza varios registros.
SKIP – (#) ß ---------- Retrocede varios registros.
GOTO # ß --------- Para localizar un registro específico.
GOTO TOP ß --------- Se ubica en el primer registro.
GOTO BOTTOM ß --------- Se ubica en el último registro
DELETE RECORD 8 ß ---- Borra el registro número ocho
RECALL RECORD 8 ß ----- Recupera el registro número ocho
DELETE FILE NOM_ARCH---- Para borrar un archivo incorporado al directorio del DB
FIND ----------- cadena de caracteres
SEEK----------- expresión
SET CARRY on / OFF
ON: Permite arrastrar el contenido del último registro tecleado a uno nuevo
OFF: Desactiva el arrastre del último registro
CLEAR ß ----------- Borra Pantalla
.@2,3 CLEAR ß ------------ Borra a partir del renglón dos columna tres
.@8,1 CLEAR TO 20,70 ß ------- Borra a partir del renglón ocho columna
Uno hasta el renglón veinte columnas
PULSE -------- para iniciar
CLOSE DATABASES ------à Cierra archivos de datos (*.DBF)
CLOSE INDEX ------à Cierra archivos de índice (*.NDX)
CLOSE FORMAT ------à Cierra archivos de formato (*.FMT)
CLOSE ALL & CLEAR ALL--------- à Cierra todos los archivos y limpia memoria
DO WHILE – ENDO-- dentro de esta orden se puede utilizar una variable lógica llamada
Char(n) ----------- cadena de caracteres de longitud fija
Varchar(n) ---------- cadena de caracteres de longitud variables
Tinyblob ------------- objeto binario largo (muy pequeño)
Blob --------- objeto binario largo (pequeño)
Mediumblob ----------- objeto binario largo (medio)
Longblob ------------objeto binario largo (grande)
Tinytext -------------cadena de texto muy pequeña
Text ---------- cadena de texto pequeña
Mediumtext ---------- cadena de texto media
Longtext -------------- cadena de texto larga
Enum ------------- una enumeración
Set ---------- un conjunto
Date------------ valor fecha (aaaa-mm-dd)
Time --------- valor de hora (hh-mm-ss)
Datetime----------- valor de fecha y hora
Timestamp---------- valor de lapso de tiempo (aaaammddhhmmss)
Year----------- valor de año
Null ----------- admite valores nulos
No null ------- rechaza dejar el campo en blanco
Default ------------ permite establecer un valor por defecto
Columnas numéricas:
auto_increment ---------- para generar identificadores únicos o valores en serie.
Unisgned ------- rechazo de valores negativos
Binary -------trata los valores como cadenas binarias (campos char y varchar)
Primary key ---------- columna indexada para búsqueda rápida. Clave principal, solo puede haber una
Unique -------- crea un índice con valores únicos
Index, key --------son sinónimos y crean índices que pueden contener valores repetidos.
Name: nombre de la tabla.
Tipe: tipo de tablas
Row format: formato de almacenamiento de la fila
Rows: número de filas
Avg_row_length: promedio de bytes usados por las filas de la tabla
Data_length: tamaño actual en bytes de fichero de tabla
Max_data_length: tamaño máximo en bytes que puede alcanzar el archivo.
Index_length: tamaño actual en bytes del archivo de índice.
Data_free: número de bytes en el archivo de datos que no se utilizan.
Auto_increment: el siguiente valor generado por una columna con la propiedad.
Create_time: hora que se creo la tabla.
Update_time: hora de la última modificación
Check_time: última vez que la tabla fue reparada o revisada por myisamchk
Create_options: opciones adicionales especificadas.
Comment: comentarios aparecidos en la creación de la tabla.
lista cláusulas de comandos:
(1) Tipos de opciones permitidas:
all ---------- provoca el regreso de todas las filas
distinct, distinctrow ------- especifican que las líneas duplicadas deben ser eliminadas
high_prioruty ------ da mayor prioridad a la instrucción en el caso de espera.
sql_byg_result, sql_small_result ------ especifican que el conjunto de resultados será mas largo o más corto
straignt_join ------- fuerza a las tablas a unirse en el orden citado en la cláusula from
(2) Lista ------ especifica las columnas que deben devolverse, el símbolo “*” especifica que deben extraerse todas las columnas. La separación entre los diferentes nombres de columnas se hacen con el símbolo “,”.
(3)Cláusulas (en caso de haber varias cláusulas deben seguir el orden expuesto en la lista):
Intro outfile ‘nombre_fichero’ opciones ------ el resultado de la consulta es transferido a un fichero, paro lo cual debemos tener privilegio de crear el fichero y además este no debe existir. Las opciones de importanción son las siguientes:
[fields [terminate by ‘cadena’]a [opcionally] [enclosed by ‘carácter’]b [escape by ‘carácter’]c] [lines terminated by ‘carácter’] d
a)especifica el carácter o caracteres que delimitan valores dentro de la línea
b)especifica un carácter entrecomillado que se quita del final del campo de valores. OPTIONALLY establece que los valores solamente se entrecomillan para las columnas char y varchar
c)Se utiliza para especificar el carácter de escape especial
d)Especifica un carácter o caracteres que determinan el final de la línea.
Los caracteres especiales son los siguientes:
-\0 ascii 0
-\b retroceso
-\n línea nueva
-\r retorno de carro
-\s espacio
-\t tabulación
-\’ comilla simple
from tabla-tablas ------ especifica una o varias tablas desde las que se obtendrán las filas. Existen varias posibilidades de unión de tablas (mirar libro de mysql).
where expresión --------- establece una expresión que se aplica a las filas seleccionadas
group by lista_columnas ------- agrupa filas del conjunto de resultados de acuerdo con las columnas citadas.
having expresión ------- especifica una expresión secundaria para limitar filas después de satisfechas las condiciones expuestas en la cláusula where.
order by entero_unsigne|nombrecoluma|fórmula -------- indica como se va a clasificar el conjunto de resultados. Las posibilidades son:
asc –----- ascendente
desc –----- descendente
rand() –----- orden aleatorio
procedure nombre_procedimiento ------- indica un nombre de procedimiento al que serán
(1) Nombre: establece el nombre de la tabla sobre la que deseamos actuar.
(2)Lista_de_acción: establece una o varias acciones a realizar, las posibilidades son:
a)ADD INDEX [nombre _ índice][columna _ índice]: añade un índice a la tabla basado en la columna especificada. Si se especifican varias columnas deben ir separadas por comas.
b) ADD PRIMARY KEY [columna _ índice]: añade una clave principal siguiendo la columna establecida.
c) ADD UNIQUE [nombre _ índice][columna _ índice]: añade un índice de valor único a la tabla en función de la columna especificada.
d) ALTER [column] nombre _ columna (set default valor | drop default): modifica el valor dedo de una columna o reduce su valor predeterminado actual.
e) CHANGE [column] nombre _ columna declaración _ columna: cambia el nombre y la definición de una columna; nombre _ columna -> nombre de la columna a modificar, declaración _ columna -> es el valor de definición por el cual se debe regir la columna, sus opciones son las mismas que las señaladas para la creación de los campos de las tablas.
f) DROP [column] nombre _ columna: elimina la columna especificada.
CREATE DATABASE NOMBRE BASE;--- CREAR LA BASE DE DATOS.
USE NOMBRE BASE DE DATOS:----USAR LA BASE DE DATOS.
CREATE TABLE NOMBRE ---CREAR UNA TABLA.
PROGRAMACION ORIENTADA A OBJETOS POO
Programación Orientada a Objetos
Sistemas de Procesamiento de Datos
INTRODUCCION
Actualmente una de las áreas más candentes en la industria y en el ámbito académico es la orientación a objetos. La orientación a objetos promete mejoras de amplio alcance en la forma de diseño, desarrollo y mantenimiento del software ofreciendo una solución a largo plazo a los problemas y preocupaciones que han existido desde el comienzo en el desarrollo de software: la falta de portabilidad del código y reusabilidad, código que es dificil de modificar, ciclos de desarrollo largos y tecnicas de codificacion no intuituvas.
Un lenguaje orientado a objetos ataca estos problemas. Tiene tres características basicas: debe estar basado en objetos, basado en clases y capaz de tener herencia de clases. Muchos lenguajes cumplen uno o dos de estos puntos; muchos menos cumplen los tres. La barrera más difícil de sortear es usualmente la herencia.
El concepto de programación orientada a objetos (OOP) no es nuevo, lenguajes clásicos como SmallTalk se basan en ella. Dado que la OOP. se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolución del problema se realiza en términos de objetos, un lenguaje se dice que está basado en objetos si soporta objetos como una característica fundamental del mismo.
El elemento fundamental de la OOP es, como su nombre lo indica, el objeto. Podemos definir un objeto como un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización.
Esta definición especifica varias propiedades importantes de los objetos. En primer lugar, un objeto no es un dato simple, sino que contiene en su interior cierto número de componentes bién estructurados. En segundo lugar, cada objeto no es un ente aislado, sino que forma parte de una organización jerárquica o de otro tipo.
ESTRUCTURA DE UN OBJETO
Un objeto puede considerarse como una especie de cápsula dividida en tres partes:
1 - RELACIONES
2 - PROPIEDADES
3 - METODOS
Cada uno de estos componentes desempeña un papel totalmente independiente:
Las relaciones permiten que el objeto se insterte en la organización y están formadas esencialmente por punteros a otros objetos.
Las propiedades distinguen un objeto determinado de los restantes que forman parte de la misma organización y tiene valores que dependen de la propiedad de que se trate. Las propiedades de un objeto pueden ser heredadas a sus descendientes en la organización.
Los métodos son las operaciones que pueden realizarse sobre el objeto, que normalmente estarán incorporados en forma de programas (código) que el objeto es capaz de ejecutar y que también pone a disposición de sus descendientes a través de la herencia.
Encapsulamiento y ocultación
Como hemos visto, cada objeto es una estructura compleja en cuyo interior hay datos y programas, todos ellos relacionados entre sí, como si estuvieran encerrados conjuntamente en una cápsula. Esta propiedad (encapsulamiento), es una de las características fundamentales en la OOP.
Los objetos son inaccesibles, e impiden que otros objetos, los usuarios, o incluso los programadores conozcan cómo está distribuída la información o qué información hay disponible. Esta propiedad de los objetos se denomina ocultación de la información.
Esto no quiere decir, sin embargo, que sea imposible conocer lo necesario respecto a un objeto y a lo que contiene. Si así fuera no se podría hacer gran cosa con él. Lo que sucede es que las peticiones de información a un objeto. deben realizarse a través de mensajes dirigidos a él, con la orden de realizar la operación pertinente. La respuesta a estas ordenes será la información requerida, siempre que el objeto considere que quien envía el mensaje está autorizado para obtenerla.
El hecho de que cada objeto sea una cápsula facilita enormemente que un objeto determinado pueda ser transportado a otro punto de la organización, o incluso a otra organización totalmente diferente que precise de él. Si el objeto ha sido bien construído, sus métodos seguirán funcionando en el nuevo entorno sin problemas. Esta cualidad hace que la OOP sea muy apta para la reutilización de programas.
Organización de los objetos
En principio, los objetos forman siempre una organización jerárquica, en el sentido de que ciertos objetos son superiores a otros de cierto modo.
Existen varios tipos tipos de jerarquías: serán simples cuando su estructura pueda ser representada por medio de un "arbol". En otros casos puede ser más compleja.
En cualquier caso, sea la estructura simple o compleja, podrán distinguirse en ella tres niveles de objetos.
-La raíz de la jerarquía. Se trata de un objeto único y especial. Este se caracteríza por estar en el nivel más alto de la estructura y suele recibir un nombre muy genérico, que indica su categoría especial, como por ejemplo objeto madre, Raíz o Entidad.
-Los objetos intermedios. Son aquellos que descienden directamente de la raíz y que a su vez tienen descendientes. Representan conjuntos o clases de objetos, que pueden ser muy generales o muy especializados, según la aplicación. Normalmente reciben nombres genéricos que denotan al conjunto de objetos que representan, por ejemplo, VENTANA, CUENTA, FICHERO. En un conjunto reciben el nombre de clases o tipos si descienden de otra clase o subclase.
-Los objetos terminales. Son todos aquellos que descienden de una clase o subclase y no tienen descendientes. Suelen llamarse casos particulares, instancias o ítems porque representan los elementos del conjunto representado por la clase o subclase a la que pertenecen.
Veamos ahora en detalle los tres elementos mencionados en "Estructura de un Objeto".
1. RELACIONES
2.
Las relaciones entre objetos son, precisamente, los enlaces que permiten a un objeto relacionarse con aquellos que forman parte de la misma organización.
Las hay de dos tipos fundamentales:
-Relaciones jerárquicas. Son esenciales para la existencia misma de la aplicación porque la construyen. Son bidireccionales, es decir, un objeto es padre de otro cuando el primer objeto se encuentra situado inmediatamente encima del segundo en la organización en la que ambos forman parte; asimismo, si un objeto es padre de otro, el segundo es hijo del primero (en la fig. 2, B es padre de D,E y F, es decir, D,E y F son hijos de B; en la fig. 3, los objetos B y C son padres de F, que a su vez es hijo de ambos).
Una organización jerárquica simple puede definirse como aquella en la que un objeto puede tener un solo padre, mientras que en una organizacion jerárquica compleja un hijo puede tener varios padres).
-Relaciones semánticas. Se refieren a las relaciones que no tienen nada que ver con la organización de la que forman parte los objetos que las establecen. Sus propiedades y consecuencia solo dependen de los objetos en sí mismos (de su significado) y no de su posición en la organización.
Se puede ver mejor con un ejemplo: supongamos que vamos a construir un diccionario informatizado que permita al usuario obtener la definición de una palabra cualquiera. Supongamos que, en dicho diccionario, las palabras son objetos y que la organización jerárquica es la que proviene de forma natural de la estructura de nuestros conocimientos sobre el mundo.
La raíz del diccionario podría llamarse TEMAS. De éste término genérico descenderán tres grandes ramas de objetos llamadas VIDA, MUNDO y HOMBRE. El primero (vida) comprenderá las ciencias biológicas: Biología y Medicina. El segundo (mundo), las ciencias de la naturaleza inerte: las Matemáticas, la Física, la Química y la Geología. El tercero (hombre) comprenderá las ciencias humanas: la Geografía, la Historia, etc.
Sistemas de Procesamiento de Datos
INTRODUCCION
Actualmente una de las áreas más candentes en la industria y en el ámbito académico es la orientación a objetos. La orientación a objetos promete mejoras de amplio alcance en la forma de diseño, desarrollo y mantenimiento del software ofreciendo una solución a largo plazo a los problemas y preocupaciones que han existido desde el comienzo en el desarrollo de software: la falta de portabilidad del código y reusabilidad, código que es dificil de modificar, ciclos de desarrollo largos y tecnicas de codificacion no intuituvas.
Un lenguaje orientado a objetos ataca estos problemas. Tiene tres características basicas: debe estar basado en objetos, basado en clases y capaz de tener herencia de clases. Muchos lenguajes cumplen uno o dos de estos puntos; muchos menos cumplen los tres. La barrera más difícil de sortear es usualmente la herencia.
El concepto de programación orientada a objetos (OOP) no es nuevo, lenguajes clásicos como SmallTalk se basan en ella. Dado que la OOP. se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolución del problema se realiza en términos de objetos, un lenguaje se dice que está basado en objetos si soporta objetos como una característica fundamental del mismo.
El elemento fundamental de la OOP es, como su nombre lo indica, el objeto. Podemos definir un objeto como un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización.
Esta definición especifica varias propiedades importantes de los objetos. En primer lugar, un objeto no es un dato simple, sino que contiene en su interior cierto número de componentes bién estructurados. En segundo lugar, cada objeto no es un ente aislado, sino que forma parte de una organización jerárquica o de otro tipo.
ESTRUCTURA DE UN OBJETO
Un objeto puede considerarse como una especie de cápsula dividida en tres partes:
1 - RELACIONES
2 - PROPIEDADES
3 - METODOS
Cada uno de estos componentes desempeña un papel totalmente independiente:
Las relaciones permiten que el objeto se insterte en la organización y están formadas esencialmente por punteros a otros objetos.
Las propiedades distinguen un objeto determinado de los restantes que forman parte de la misma organización y tiene valores que dependen de la propiedad de que se trate. Las propiedades de un objeto pueden ser heredadas a sus descendientes en la organización.
Los métodos son las operaciones que pueden realizarse sobre el objeto, que normalmente estarán incorporados en forma de programas (código) que el objeto es capaz de ejecutar y que también pone a disposición de sus descendientes a través de la herencia.
Encapsulamiento y ocultación
Como hemos visto, cada objeto es una estructura compleja en cuyo interior hay datos y programas, todos ellos relacionados entre sí, como si estuvieran encerrados conjuntamente en una cápsula. Esta propiedad (encapsulamiento), es una de las características fundamentales en la OOP.
Los objetos son inaccesibles, e impiden que otros objetos, los usuarios, o incluso los programadores conozcan cómo está distribuída la información o qué información hay disponible. Esta propiedad de los objetos se denomina ocultación de la información.
Esto no quiere decir, sin embargo, que sea imposible conocer lo necesario respecto a un objeto y a lo que contiene. Si así fuera no se podría hacer gran cosa con él. Lo que sucede es que las peticiones de información a un objeto. deben realizarse a través de mensajes dirigidos a él, con la orden de realizar la operación pertinente. La respuesta a estas ordenes será la información requerida, siempre que el objeto considere que quien envía el mensaje está autorizado para obtenerla.
El hecho de que cada objeto sea una cápsula facilita enormemente que un objeto determinado pueda ser transportado a otro punto de la organización, o incluso a otra organización totalmente diferente que precise de él. Si el objeto ha sido bien construído, sus métodos seguirán funcionando en el nuevo entorno sin problemas. Esta cualidad hace que la OOP sea muy apta para la reutilización de programas.
Organización de los objetos
En principio, los objetos forman siempre una organización jerárquica, en el sentido de que ciertos objetos son superiores a otros de cierto modo.
Existen varios tipos tipos de jerarquías: serán simples cuando su estructura pueda ser representada por medio de un "arbol". En otros casos puede ser más compleja.
En cualquier caso, sea la estructura simple o compleja, podrán distinguirse en ella tres niveles de objetos.
-La raíz de la jerarquía. Se trata de un objeto único y especial. Este se caracteríza por estar en el nivel más alto de la estructura y suele recibir un nombre muy genérico, que indica su categoría especial, como por ejemplo objeto madre, Raíz o Entidad.
-Los objetos intermedios. Son aquellos que descienden directamente de la raíz y que a su vez tienen descendientes. Representan conjuntos o clases de objetos, que pueden ser muy generales o muy especializados, según la aplicación. Normalmente reciben nombres genéricos que denotan al conjunto de objetos que representan, por ejemplo, VENTANA, CUENTA, FICHERO. En un conjunto reciben el nombre de clases o tipos si descienden de otra clase o subclase.
-Los objetos terminales. Son todos aquellos que descienden de una clase o subclase y no tienen descendientes. Suelen llamarse casos particulares, instancias o ítems porque representan los elementos del conjunto representado por la clase o subclase a la que pertenecen.
Veamos ahora en detalle los tres elementos mencionados en "Estructura de un Objeto".
1. RELACIONES
2.
Las relaciones entre objetos son, precisamente, los enlaces que permiten a un objeto relacionarse con aquellos que forman parte de la misma organización.
Las hay de dos tipos fundamentales:
-Relaciones jerárquicas. Son esenciales para la existencia misma de la aplicación porque la construyen. Son bidireccionales, es decir, un objeto es padre de otro cuando el primer objeto se encuentra situado inmediatamente encima del segundo en la organización en la que ambos forman parte; asimismo, si un objeto es padre de otro, el segundo es hijo del primero (en la fig. 2, B es padre de D,E y F, es decir, D,E y F son hijos de B; en la fig. 3, los objetos B y C son padres de F, que a su vez es hijo de ambos).
Una organización jerárquica simple puede definirse como aquella en la que un objeto puede tener un solo padre, mientras que en una organizacion jerárquica compleja un hijo puede tener varios padres).
-Relaciones semánticas. Se refieren a las relaciones que no tienen nada que ver con la organización de la que forman parte los objetos que las establecen. Sus propiedades y consecuencia solo dependen de los objetos en sí mismos (de su significado) y no de su posición en la organización.
Se puede ver mejor con un ejemplo: supongamos que vamos a construir un diccionario informatizado que permita al usuario obtener la definición de una palabra cualquiera. Supongamos que, en dicho diccionario, las palabras son objetos y que la organización jerárquica es la que proviene de forma natural de la estructura de nuestros conocimientos sobre el mundo.
La raíz del diccionario podría llamarse TEMAS. De éste término genérico descenderán tres grandes ramas de objetos llamadas VIDA, MUNDO y HOMBRE. El primero (vida) comprenderá las ciencias biológicas: Biología y Medicina. El segundo (mundo), las ciencias de la naturaleza inerte: las Matemáticas, la Física, la Química y la Geología. El tercero (hombre) comprenderá las ciencias humanas: la Geografía, la Historia, etc.
EJERCICIOS EN C++
Dado un numero verificar:
- Que tenga dos digitos
- Verificar si sus digitos son pares
- Promediar sus digitos
Código:
#include
#include
int main ()
{
int numero;
printf("Inserte num. de dos digitos pares: ");
scanf("%d",&numero);
int aux=numero;
if(numero<100 && numero>9)
{
int d1=numero%10;
numero=numero/10;
int d2=numero%10;
if(d1%2==0 & d2%2==0)
printf("El promedio d los digitos de %d es: %d",aux,(d1+d2)/2);
}
else
printf("\aERROR: el numero no tiene dos digitos");
getch();
}
Dado un numero verificar si es positivo, negativo o nulo
Código:
#include
#include
int main ()
{
int numero;
printf("Inserte un numero: ");
scanf("%d",&numero);
if(numero==0)
printf("El numero %d es NULO",numero);
else
{
if(numero<0)
printf("El numero %d es NEGATIVO",numero);
else
printf("El numero %d es POSITIVO",numero);
}
getch();
}
hallar la sumatoria de: 2! + 4! + 6! + 8! + ...
Código:
#include
#include
int facto (int x)
{
int f=1;
for (int i=1;i<=x;i++)
{f=f*i;}
return (f);
}
int main ()
{
int n, serie=2, suma=0;
printf ("Inserte cantidad de terminos a generar: "); scanf ("%d",&n);
for (int i=1;i<=n;i++)
{
printf ("%d! + ",serie);
suma=suma+(facto(serie));
serie=serie+2;
}
printf (" = %d",suma);
getch();
Generar la matriz:
[01][02][03][04]
[08][07][06][05]
[09][10][11][12]
Código:
#include
#include
void llenar (int M[20][20], int f, int c)
{
int k=1;
for (int i=1;i<=f;i++)
{
if (i%2!=0)
{
for (int j=1;j<=c;j++)
{
M[i][j]=k; k++;
}
}
else
{
for (int j=c;j>=1;j--)
{
M[i][j]=k; k++;
}
}
}
}
void mostrar (int M[20][20], int f, int c)
{
for (int i=1;i<=f;i++)
{
printf("\n");
for (int j=1;j<=c;j++)
{
printf("[%d] ",M[i][j]);
}
}
}
int main ()
{
int f, c;
int M[20][20];
printf("Inserte filas de M: "); scanf("%d",&f);
printf("Inserte cols. de M: "); scanf("%d",&c);
llenar(M, f, c);
mostrar(M, f, c);
getch();
}
- Que tenga dos digitos
- Verificar si sus digitos son pares
- Promediar sus digitos
Código:
#include
#include
int main ()
{
int numero;
printf("Inserte num. de dos digitos pares: ");
scanf("%d",&numero);
int aux=numero;
if(numero<100 && numero>9)
{
int d1=numero%10;
numero=numero/10;
int d2=numero%10;
if(d1%2==0 & d2%2==0)
printf("El promedio d los digitos de %d es: %d",aux,(d1+d2)/2);
}
else
printf("\aERROR: el numero no tiene dos digitos");
getch();
}
Dado un numero verificar si es positivo, negativo o nulo
Código:
#include
#include
int main ()
{
int numero;
printf("Inserte un numero: ");
scanf("%d",&numero);
if(numero==0)
printf("El numero %d es NULO",numero);
else
{
if(numero<0)
printf("El numero %d es NEGATIVO",numero);
else
printf("El numero %d es POSITIVO",numero);
}
getch();
}
hallar la sumatoria de: 2! + 4! + 6! + 8! + ...
Código:
#include
#include
int facto (int x)
{
int f=1;
for (int i=1;i<=x;i++)
{f=f*i;}
return (f);
}
int main ()
{
int n, serie=2, suma=0;
printf ("Inserte cantidad de terminos a generar: "); scanf ("%d",&n);
for (int i=1;i<=n;i++)
{
printf ("%d! + ",serie);
suma=suma+(facto(serie));
serie=serie+2;
}
printf (" = %d",suma);
getch();
Generar la matriz:
[01][02][03][04]
[08][07][06][05]
[09][10][11][12]
Código:
#include
#include
void llenar (int M[20][20], int f, int c)
{
int k=1;
for (int i=1;i<=f;i++)
{
if (i%2!=0)
{
for (int j=1;j<=c;j++)
{
M[i][j]=k; k++;
}
}
else
{
for (int j=c;j>=1;j--)
{
M[i][j]=k; k++;
}
}
}
}
void mostrar (int M[20][20], int f, int c)
{
for (int i=1;i<=f;i++)
{
printf("\n");
for (int j=1;j<=c;j++)
{
printf("[%d] ",M[i][j]);
}
}
}
int main ()
{
int f, c;
int M[20][20];
printf("Inserte filas de M: "); scanf("%d",&f);
printf("Inserte cols. de M: "); scanf("%d",&c);
llenar(M, f, c);
mostrar(M, f, c);
getch();
}
EJERCICIOS RESUELTOS EN C++
RECORDEMOS QUE ANTES DE NAVEGAR EN LOS EJERCICIOS DE SOFTWARE EN C++. ES NECESARIO CO
NOCER UN POCO DE LOGICA DE PROGRAMACION,LA CUAL TIENE COMO BASE LOS ALGORITMOS QUE SON PASOS O PROCEDIMIENTOS LOGICOS Y REALES QUE DEBEMOS HACER PARA LOGRAR UN OBJETIVO
O SOLUCIONAR UN PROBLEMA.LOS SOFTWARE APLICATIVOS COMO ES CONOCIDO HOY EN DIA NOS HA FACILITADO LAS TAREAS.EN UNA FORMA ELECTROSISTEMATICA MUY AMPLIA GLOBAL,LOS EJERCICIOS EN C++ LOS EXTRUCTURAMOS EN LOS DIAGRAMAS DE FLUJO ESTOS ÚLTIMOS NOS PERMITEN MOSTRAR LOS PASOS LOGICOS ATRAVEZ DE UNOS SIMBOLOS QUE TIENEN SIGNIFICADOS QUE PERMITEN LA EXTRUCTURACION DEL SOFTWARE QUE POSTERIORMENTE SE RELIZARA EN EL PROGRAMA C++ ATRVEZ DE UNOS COMANDOS O SENTENCIAS COMPACTIBLES CON LA MAQUINA (PC).
EJEMPLO DE DIAGRAMA DE FLUJO.
NOCER UN POCO DE LOGICA DE PROGRAMACION,LA CUAL TIENE COMO BASE LOS ALGORITMOS QUE SON PASOS O PROCEDIMIENTOS LOGICOS Y REALES QUE DEBEMOS HACER PARA LOGRAR UN OBJETIVO
O SOLUCIONAR UN PROBLEMA.LOS SOFTWARE APLICATIVOS COMO ES CONOCIDO HOY EN DIA NOS HA FACILITADO LAS TAREAS.EN UNA FORMA ELECTROSISTEMATICA MUY AMPLIA GLOBAL,LOS EJERCICIOS EN C++ LOS EXTRUCTURAMOS EN LOS DIAGRAMAS DE FLUJO ESTOS ÚLTIMOS NOS PERMITEN MOSTRAR LOS PASOS LOGICOS ATRAVEZ DE UNOS SIMBOLOS QUE TIENEN SIGNIFICADOS QUE PERMITEN LA EXTRUCTURACION DEL SOFTWARE QUE POSTERIORMENTE SE RELIZARA EN EL PROGRAMA C++ ATRVEZ DE UNOS COMANDOS O SENTENCIAS COMPACTIBLES CON LA MAQUINA (PC).
EJEMPLO DE DIAGRAMA DE FLUJO.
jueves, 24 de diciembre de 2009
Suscribirse a:
Entradas (Atom)