Sie sind auf Seite 1von 10

Arquitectura:

ANSI
La estrucctura tiene 3 niveles:
Nivel Interno: Tambien conocido como nivel fisico. Es la parte con la que estamo
s en con
contacto con la forma en que se guardan. Como se almacenan. Cmoo se acessa a la
informacion
Nivel Externo: O nivel de usuario. Como su nombre lo indica, es la parte de la b
ase de
datos que esta mas en contacto con los usuarios. Este es el encargo de recibir d
e parte
de nosotros todos los requirimientos. Todos cuando hacemos un select, un delete,
un update
se hacen en nivel externo. Nos da respuesta a solicitudes que hacemos.
Nivel Conceptual:
O nivel logico, es la union o comunicar los dos niveles que estan en ambos extr
emos.
es solo servir de enlace en ambos niveles. Es decir para transformaar el nivel e
xternos al nivel
intenerno. Es decir, traducirla, este nivel logico es capaz de entender a ambos
niveles. Y capaz
de hacer las tranformaciones. A esto se le llama Modularidad haciendo un problem
a grande en varios
pequeos.
Herramientas de desarrollo:
Lenguajes Anfitrion, dentro de este, hay otro o sub lenguaje conocido como Incru
stado.
Lenguaje Anfitrion: todas las palabras claves con la cuales construye su program
a: Class, for, while
En java le meaclamos secuancias SQL.
El lenguaje Anfitrions e INcrustado pueden estar fuertes o debilmente ligado.
Debil: Cuando el Anfitrion es incapaz de reconocer el lenguaje del lenguaje incr
ustado
ejemeplo: Java
Fuertemen Ligado: Ejemplo Powerbild, cuando es lenguaje de alto nivel de 4ta o
5ta generacion.
Independencia del Software: Es la inmunidad que tiene un programa haberse afecta
do por cambios
en la base de datos.
insert into Alumons (alumno, nombre) values (1, 'Juan')
Sigue funcionando, aun cuando la estructura de los datos cambien.

Las ventajas de usar bases de datos:


1.2.3.4.-

Los datos pueden compartirse


Actualidad
Compactacion
Menos trabajo Laborioso

Historia:
El primer precursor de las bases de datos es: Herman Hollerith, esposa de babash
,
en la decada de 1980 crea una maquina para procesar el censo de los estados Unid
os.
EL primero se declaro desierto. EMpresa que fundo Herman Hollerith IBM,
IBM, los cambiios mas fuertes o aportes mas fuertes vinieron de parte de IBM.
EF. Codd : Matematico, planteo una teorio. Modelo relacional. Que importancia ti
ene? Sento las
bases de lo que nosotros conocemos en la actualidad como bases de datos.
* Aspecto Estructural: La informacion en una base de datos va a estar en forma
de
tablas, y nada mas que una tabla.
*Aspecto Integridad. Que los datos sean consistentes. Las tablas deben cumplir c
on ciertas
reglas. Como conservamos la consistencias.
*Aspecto Manipulacion: Como los vamos hacer llegar a los datos y como los manipu
lamos. Se refiere
a los comando u operaciones que nosotros vamos a utilizar sobre la base de datos
.
* 1975: System R. 1 ,2,3 Como el primer motor de base de datos. El DB2
1978: Larry Ellison: Fundador de Oracle (relationan software) lider mundial.
Oracle, IBM, y Microsoft
1986 microsof Sybase SQL Server
3 generaciones de SQL.
1.- Primera Generacion SQL Server 6.0 y 6.5
2.- Segunda generacion 7.0 y 8.0 (conocido como 2000)
3.- Tercera generacion 9(SQL 2005),10(2008),10.5(2008R2),11(2012)
Open source: posgre SQL, domina el codigo abierto.
Ensamblador: Lenguaje para darle ordenes a un procesador en especifico.
Nacio el lenguaje que da ordenes a las bases de datos: SEQUEL era el nombre ante
rior de
SQL

1980 ANSI hace la primera normalizacion.


informix: Empresa de las que eran lideres, en las decadas de los 90 fue comprado
por IBM, por quererse apropiar de un cliente que tenia informix.
IBM produce dos motores de base de datos: DB2 e INFORMIX.
// Oracle: Adquirio a Sol Microsoft System, solaris. Unix etc.
1986 ISO: Hace una estandarizacion del lenguaje como tal. UNa sintaxis que pueda
ser capaz
de ser utilizada por todos los motores de bases de datos.
Ejemplo: // esta es entandar: Insert into alumno values (1,'juan')
// insert alumno values (1,'Juan') SQL server si, pero Oracle no, ni mysql
SQL 1 1986
SQL 2 1992
SQL: Las sentencias o comando se dividen en dos frupo:
DDL y DML
DDl: Data Definition Lang. Lenguaje Definicion DAtos. Para crear objetos o manip
ular la estructura de la base de datos.
Los DDL reconocemos porque comunmente comientan con un: Create, un Alter(modific
ar una tabla) o un Drop.
DML: Data Manipuletion Lang. Lenguaje de manipulacion de datos. Ejemplos: Selec
t, Insert, Update, delete
comando: Cada una de las ordenes que les damos a las bases de datos. (select, in
ser, update, un create database)
Clausula: Los parametros adicionales, que complementan a un comando.
Ejemplo: select * from tabla (debemos especificar la clausula from, y necesitam
os d elos valoes para transformarla en una sentencia)
Sentencias: Se les conoce como consultas, cuando cuando juntamos bien los comand
os y las clausulas.

select * El asteristo es un comodin


From tabla
Operaciones basicas del acceso a Datos:
Al recuperar todas las columnas y files de una tabla:* Restrinccion
*Proyeccion, es un proceso de recuperar ciertas columnas de una tabla.
Seleccion es un filtro de algunas columnas.
Si se recupera informacion de multiples tablas, esto es una combinacion.
Union:

select <>columna1> <columna 2>


Cuando se convinan las filas: Union
intercepcion: Si se quiere saber que registros de una tabla con los registros de
otra tabla.
Como una comparacion de una tabla. Conocido como un intercepcion.
Excepcion:

Relacion de confianza: Autentificacon de window.


Modelos de seguridad:
Autenicacion Windows
Autenticacion SQL Server
Camandos:
use. El comando use nos siver para conectarnos a una base de datos.
Procedimientos almacenados: Un programa que nos permite una X operaciones. Proce
dimientos almacenados
en el sistema.
Comando que recupere tablas
select title_id,title, type, pub_id, price from titles
Para colocar alias usas las clausala: as
O usas un espacios.
o alias que solo es validad en SQL server: tipo= Typo
funciones de cadenas
left
right
substring (title:id, 2, 3), len (title)
len : Devueklve la longitud
*
funciones_
select title:id, title, type, pub:id,
--left (title_id,2) as tipo, RIGHT ( title_id ,5) as Numero,
--SUBSTRING (title:_

select title:id, title, pubdate, year 0


________________________
use pubs

select * from sales


--where qty >= 20 and qty <=30
-- where qty not between 20 and 30
--where qty <20 or qty >30
--where qty =20 or qty =25 or qty = 30
--where qty in (20,25,30)
-- where year (ord_date) in (1991,1993)
_____________________________
select * from titles
where price=19.99 and year (pubdate)=1991
R: Para buscar los libros con precio 19.99 y del ao: 1991
__________________________________
likees uno de los operadopres mas versatiles. Tiene varias variantes.
use pubs
select * from titles
--where price=19.99 and year (pubdate)=1991
--where left(title,1)='t'
-- Left contiene un 1 para especificar la primera letra
--where title like 'comput%'
-- Para buscar en la columna datos que comiencen con compu. Gracias al caracter
comodin %. Y dependiendo de donde lo ponganmos,sea el principio o final
--where title like '[abcde]%'
-- Para buscar datyos que comiencen con a o b o c o d o e
--where title like '[abcde]%[sym]'
-- para mostrar los que comienzan con las letras dadas o finalizan con sym
la funcion count (*): Lo que hace es contar la cantidad de filas en una tabla
-----------select count (*), count (price) from titles
select * from titles
--------------------------------select sum (qty), avg (qty), max (qty), min (qty), min (ord_date) from sales
----------------Por medio de la operacion union. Podemos mezclar visualmente tablas.

use pubs
select title_id, title,'Libro' from titles
union
select stor_id, stor_name, 'Tiendas' from stores
union
select pub_id, pub_name, 'Editoriales' from publishers
-------------------------------------Intersect: Los registros que son comunes en ambos grupos
select * from titles where price = 19.99
intersect
select * from titles where type like 'bus%'
------------------------except: Los registros que son diferentes en todo
select * from titles where price = 19.99
except:
select * from titles where type like 'bus%'
****************
select * from titles where price = 19.99
con esto obtenemos los precios de estos libros, obteniendolos desde la titles
select * from sales where title_id in('BU203','BU7832','PS3333')
******
cuando un qery esta contenido entre otro, se le llama sub consulta.

where title_id in (select title_id from titles where price=19.99)


Producto cartesiano: es tomar toda las columna de una tabla y convinarlo
inerJoin: es tomar todas las filas de una tabla, y convinarla con las de otra ta
bla
join interno: Caracteristica que solo aparecera en aquellos registros donde exis
tan coincidencias.
Join Externo: Si se desea incluir registros donde no existan coincidencias.
letf join, ringh join y full join
Relacion fisica;
Relacion Logica: Con que comparten alguna tabla se encuentren relacion por un ca

mpo en comun.

Ambigous colum: Es que esa columna se encuentra en varios columnas.


Error comun: Establecer la relacion existente entre dos tablas. Para saber la ca
ntidad de registros resultando es el correcto, no puede exceder a la cantidad
de registros de la tabla mas grande.
*********************
Relacionar dos tablas con inner join:
select t.title_id, s.title_id
from titles t
inner join sales s on t.title_id=s.title_id
*********************
Libros que comincen con BU y cuya cantidad sea mayor de 50
select t.title_id, t.title, s.ord_num, t.price,s.qty
from titles t
inner join sales s on t.title_id=s.title_id
where t.title_id like 'bu%' and s.qty>=50
*********************
use pubs
select s.stor_id, st.stor_name, s.ord_num, s.ord_date, s.qty, st.state
from sales s
inner join stores st on s.stor_id = st.stor_id
where year (ord_date)=1994 and MONTH(ord_date) =9 and st.state='WA'
El anterior codigo, muestra solo los datos especificados:
***************
Para meterno como sub consulta, Es lo mismo que la anterior. Ambos son join exte
rnos
select s.stor_id, st.stor_name, s.ord_num, s.ord_date, s.qty, st.state
from ( select * from sales where year (ord_date) = 1994 and MONTH(ord_date)=9)s
inner join (select * from stores where state = 'WA') st on s.stor_id=st.stor_id
*********
Para que aparezca todo: un join externo
select s.stor_id, st.stor_name, s.ord_num, s.ord_date, s.qty, st.state
from ( select * from sales where year (ord_date) = 1994 and MONTH(ord_date)=9)s
right join (select * from stores where state = 'CA') st on s.stor_id=st.stor_id
select * from stores where state = 'CA'
con el Right join.
**************
con el left join, para capturar el otro extremo. Izquierdo
select s.stor_id, st.stor_name, s.ord_num, s.ord_date, s.qty, st.state

from ( select * from sales where year (ord_date) = 1994 and MONTH(ord_date)=9)s
left join (select * from stores where state = 'CA') st on s.stor_id=st.stor_id
Ambos: Rigth t left para los registros que no tengan coicidencias.
*************
inner join: Los registros que tuvieron coidicendias
Join externos: cuando no hay una coicidencias
***********
Las ventas que no pertenecen a una libreria de CA:
select s.stor_id, st.stor_name, s.ord_num, s.ord_date, s.qty, st.state
from ( select * from sales where year (ord_date) = 1994 and MONTH(ord_date)=9)s
left join (select * from stores where state = 'CA') st on s.stor_id=st.stor_id
where st.stor_id is null
************************
Para saber las ventas totales:
select sum(qty) from sales
Hacer: Una investigacion con su respectivo informe y posicion acerca de que son,
y que efectos tendran las medidas
implementadas por la DEI con respecto al proceso de facturacion de las empresas.
(Dos semanas 27 de oct) a exponer y presentar un informe. Ese informe va relacio
nado con
las bases de datos, la DEI pondra unos lineamientos. Con presentacion.
**********************************************
select year(ord_date), sum(qty) ,
count(*)-- , para ver de cuantos registros
from sales
group by ord_date
-- El group by ya no le cambia el criterio sobre el cual trabaja la funcion agre
ga
-- Ahora ya le toma todos los registros sobre tienda, y se los totaliza. No a ni
vel general
--sino en nivel especifico, de acuerdo al nivel de agrupamiento
select *
from sales
where ord_date='7896'
**************************
Dos agrupamientos
select stor_id, year(ord_date), sum(qty) ,
count(*)-- , para ver de cuantos registros
from sales
group by stor_id,ord_date
-- El group by ya no le cambia el criterio sobre el cual trabaja la funcion agre
ga
-- Ahora ya le toma todos los registros sobre tienda, y se los totaliza. No a ni

vel general
--sino en nivel especifico, de acuerdo al nivel de agrupamiento
select *
from sales
where ord_date='7896'
**************************
Ahora ordenados
select stor_id, year(ord_date), sum(qty) ,
count(*)
from sales
group by stor_id,ord_date
with rollup
select *
from sales
where ord_date='7896'
with rollup: Agrupa los niveles de mayor agrupamiento.
************
use pubs
select pub_id,type, sum ( price*qty), sum ( qty), count (*)
from sales s
-- Primero combinar ambas tablas
-- si no se agrega en el agrupamiento se presenta un error sintactico
inner join titles t on s.title_id = t.title_id
group by pub_id, type
********************
select stor_id, sum(qty), count(*)
from sales
--despues de los from va el :
-- join
--despues el where
--- group by
--- having
--- order by
group by title_id
having sum(qty) > 100
--tenemos que tener un group by para hacer un having: evalua despuesd los result
ados, despues el agrupamiento
select * from sales where title_id = 'BU2075'
****************************
select *
from sales
order by qty desc, ord_date
-- el order by me ordena segun un criterio de agrupamiento
--desc para hacer que los datos de qty vayan en descendente, las fechas en acend
ente.

Das könnte Ihnen auch gefallen