BD1 SQL Server
BD1 SQL Server
BD1 SQL Server
DBMS:
Sistema de gestión que es el encargado de administrar, acceder, eliminar y modificar
los datos de la base. Posee ciertos servicios que garantizan aspectos sobre los datos.
Rol del DBMS → Manejar de manera clara, sencilla y ordenada, los datos de una Base de
Datos (DB) que posteriormente se convertirán en información relevante, para un buen
manejo de los datos.
→Arquitectura de capas.
Capas
https://cursos.aiu.edu/base%20de%20datos%20SOG/Sesión%201.pdf
Links útiles:
https://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/base-de-datos-i/201
9/i/guia-12.pdf
SQL Server
Componentes de Servidor (procesos de servidor): se levantan automáticamente sin la
necesidad del usuario, vinculados a la instancia de servidor, no accede el usuario.
trigger y stored procedures: que son, como funcionan, clasificación, ejemplo para que sirven
diferencia entre rol de base de datos y rol de servidor, ademas que son, como se usan, ver
casos prácticos
Manejo de transacciones
2. Analysis Server
3. Reporting Services
5. Integration Services
Conceptos importantes:
● Instancias:
1. Una instancia de Motor de base de datos es una copia del ejecutable de
sqlservr.exe que se ejecuta como un servicio de sistema operativo.
2. Cada instancia administra varias bases de datos del sistema y una o varias
bases de datos de usuario.
3. Cada equipo puede ejecutar varias instancias de Motor de base de datos.
Las aplicaciones se conectan a la instancia para realizar el trabajo en una
base de datos administrada por la instancia.
4. Una instancia de Motor de base de datos funciona como un servicio que
controla todas las solicitudes de aplicación para trabajar con datos de
cualquiera de las bases de datos administradas por dicha instancia.
● Base de datos
○ Multiplicidad de Bases de Datos por Instancias (muchas bases de datos por
instancia) → Cantidad de instancias generadas en una BD
● Herramientas Administrativas
Independencia de datos
Todos los formatos de registro se almacenan en la misma base y el DBMS tiene
acceso a ellos. A diferencia de los programas de procesamiento de archivos, los de
aplicación de base de datos no necesitan incluir el formato de todos los registros y los
archivos que procesan. La independencia de datos/programas minimiza el impacto de los
cambios en el formato de los datos en los programas de aplicación. Los cambios en los
formatos se introducen al DBMS, el cual actualiza los datos y mantiene la relación con la
estructura de la base de datos.
Archivos y configuraciones
● Data Files:
○ Almacenan toda la información de la Base de datos (datos, índices, datos de
configuración, funciones, procedimientos,...)
○ Funcionan como repositorio principal de la base de datos.
■ Primary Data Files (MDF): Los datos en la base que son guardados
en un primary data file , tienen la extensión .mdf (Todos los archivos
que van en el file group PRIMARY)
■ Secondary Data Files (NDF): Secondary data files, usados para que
los datos de una base de datos esté distribuidas en más archivos y en
más de un sistema de archivos (Van en file groups creados por el
usuaro)
■ Log files (LDF): Proveen un registro de las modificaciones a la base
de datos. SQL Server utiliza un proceso para que todos los cambios
se escriban en los registros de transacciones antes de que se
escriban en la base en sí. No hay un file groups en si.
● Los registros permiten la funcionalidad de recuperación de
datos.
● La extensión de los archivos es .ldf
○ Name / Filename
○ Size
○ Maxsize
○ Filegrowth ( 0 = not growth)
● File groups:
→ User Define :Son group files definidos por el usuario, no son creados ni asignados por
defecto. En donde puede elegirse la partición que uno quiera y añadir los archivos que
quiera.
https://www.juntadeandalucia.es/servicios/madeja/contenido/recurso/289
Migración:
Backup and restore: Seguridad de una base de datos – Parte II Backup y Restore
Desventaja: después de hacer el back up los datos siguen evolucionando entonces pueden
quedar desactualizados
Detach Attach → Separar una base de datos de SQL Server para modificarla y adjuntarla a
otro lado.
Separar y adjuntar Base de datos Sql Server 2012 (9-35) Bases de Datos en Microsof…
Detaching a database removes it from the original instance of SQL Server but keeps the
database and transaction log files intact. It is possible to detach a database only in the
following circumstances:
● The database is not replicated and published. If you want to detach a database that
is replicated, you must unpublish the database prior to attempting to detach the
database.
● The database is not mirrored. If the database you want to detach is being mirrored,
you must terminate the mirroring session.
● The database must have no snapshots. Prior to detaching the database, you must
drop all existing database snapshots.
● You cannot detach system databases.
● You can attach a database only if all data files are available. You can specify
alternate locations for files when attaching a database to a new instance.
● You cannot attach a database created on a more recent version of SQL Server to an
earlier version. For example, you cannot detach a database from a SQL Server 2012
instance and then attach it to a SQL Server 2005 instance.
ATTACH
To attach a database to a new instance, right-click the Databases node in SQL Server
Management Studio and then click Attach.
Using the SQL Server Import and Export Wizard The SQL Server Import and Export Wizard
(DTSWizard.exe) is a component of Integration Services. The SQL Server Import and Export
Wizard enables you to migrate data to and from the following sources:
● NET Framework Data Provider for SQLServer
● Flat File Source
● Microsoft Access
● Microsoft Excel
● Microsoft OLE DB Provider for Analysis Services 11.0
● Microsoft OLE DB Provider for Oracle
● Microsoft OLE DB Provider for SQL Server
● SQL Server Native Client 11.0
The Import and Export Wizard works by creating an Integration Services package.
Integration Services enables you to perform complex data transformation tasks that are
beyond the scope of the 70-462 exam. The benefit of an Integration Services package,
though, is that you can schedule it to run on a regular basis and modify it as necessary by
using SQL Server Data Tools. The following permissions are required to use the SQL Server
Import and Export Wizard:
● Permission to read from the source database or file.
● Permission to write data to the destination database or file.
● To save the Integration Services package created by the wizard, the security principal
requires INSERT permission on the msdb database.
● If it is necessary to create a new database or table to complete the wizard, the
appropriate permissions are required on the destination database instance.
Lectura/Escritura
Modelos de recuperación:
SQL Server Recovery Models Overview - Simple, Full, Bulk logged [HD]
● Full recovery: el Transaction Log acumula todos los cambios realizados en la base
de datos. Para mantener actualizado cuales son las modificaciones, el transaction
log se guarda periódicamente. Si no se hace el back up, el log va a seguir
acumulando datos hasta que se acabe el espacio. (es el que tiene por defecto sql
server). Guarda todo lo que se ejecuta como transacciones. Se podría recuperar la
base de datos en cualquier momento en el tiempo. Requiere de mucho espacio en
disco. SOLO SE BORRAN LOS LOGS CDO SE HACE UN FULL BACKUP
● Simple Recovery: El transaction log acumula la información suficiente para recuperar
la base de datos en caso de un fallo del sistema. Transactions son truncadas
periódicamente desde el transaction log para liberar espacio y acortar el tiempo de
recuperación. Si se usa este modo solo permite full y differencial backups. Solo se
puede restablecer una bd a la última actualización que tengan el full y differencial
backup. Borra transacciones completadas (menos cierto archivos)
● Bulk - Logged Recovery: Es similar al full recovery pero en el Trans Log guarda
menos información de operaciones masivas. Una ventaja es que usa menos espacio
para bulk operations (operaciones masivas) entonces minimiza la cantidad de
espacio requerido para el backup. Solo soporta la política de full transaction log y no
se puede recuperar en cualquier punto en el tiempo. Se utiliza para operaciones
masivas (bulk), ejemplo: dump de datos. Se usa cuando se quiere copiar la
información de una base a otra.
● La hermana del bertoli esta nashe carita fachera ashe
#nota: Cada vez que hago un Full backup , borrar todos los transaccional log
Tipos de respaldo:
Como su nombre lo indica, un respaldo completo hace una copia de toda la base de
datos; un respaldo diferencial hace una copia de los cambios que se han hecho a la base de
datos desde que concluyó el último respaldo. Esto significa que se debe hacer un respaldo
completo antes del primer respaldo diferencial.
Tipos de respaldos:
Políticas de BackUp:
https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/transaction-
log-backups-sql-server?view=sql-server-ver16
https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/apply-trans
action-log-backups-sql-server?view=sql-server-ver16
Completo. Este es el tipo de copia de seguridad más común que incluye todo, incorporando
objetos, datos de tablas del sistema y transacciones que ocurren durante la copia de seguridad.
Con una copia de seguridad completa, se puede restaurar su base de datos al estado original en
el que realizó la copia de seguridad. Las copias de seguridad completas no truncarán su registro
de transacciones, pero si su base de datos está en recuperación será completa, adicionalmente
usted también debe considerar las copias de seguridad del registro de transacciones
Diferencial. Este tipo de copia de seguridad ofrece un medio para mantener un historial
completo de su base de datos, pero sin almacenar los datos redundantes. Una copia de
seguridad diferencial retiene datos desde la última copia de seguridad completa. Una copia de
seguridad diferencial solo es útil si la misma se usa en conjunto con una copia de seguridad
completa, pero le permite eliminar copias de seguridad diferenciales anteriores ya que las
mismas son redundantes
https://docs.microsoft.com/es-mx/sql/relational-databases/backup-restore/differential-backups-sql
-server?view=sql-server-ver16
Registro de transacciones. Este tipo de copia de seguridad realizará una copia adicional de
seguridad de todas las transacciones que se hayan producido desde la última copia de
seguridad o truncamiento del registro, luego truncará al registro de transacciones. Esto
capturará toda la información de la transacción, tanto DML como también DDL, que haya
ocurrido en la base de datos. Con una copia de seguridad del registro de transacciones, se
puede restaurar una base de datos a un punto particular en el tiempo, también conocido como
recuperación en un punto en el tiempo, como para fijar puntualmente justo antes de un evento
de pérdida de datos
El método deja que Windows haga todo el trabajo de autenticar al usuario. Windows
realiza la autenticación y SQL Server confía la autenticación y da acceso a la cuenta
Windows como fue configurado (Todos los servicios disponibles). Los usuarios de Windows
y grupo de cuentas pueden ser mapeados a SQL Server, permitiendo a todas las
autenticaciones ser manejadas a nivel de Windows (También llamado Integrated Security or
Trusted Security)
● User: El usuario de la base de datos es la identidad del inicio de sesión cuando está
conectado a una base de datos. El usuario de la base de datos puede utilizar el
mismo nombre que el inicio de sesión, pero no es necesario. Tiene permisos sobre
los servicios.
○ Los Logins son asignados a los usuarios
○ Los grants se les asignan a los usuarios. (Privilegios)
○ A los usuarios se le asignan sus propios Esquemas(schemas)
Roles: Conjunto de permisos para asignar a usuarios. Los Roles pueden existir a nivel de
instancia o base de datos.
A nivel de Instancia:
● Los logins pueden ser otorgados roles llamados “server roles”.
● No se pueden crear Roles nuevos
https://docs.microsoft.com/es-mx/sql/sql-server/failover-clusters/troubleshoot-orphaned-user
s-sql-server?view=sql-server-ver16ç
Fixed Server Roles y Database Roles (está en el libro, pdf administering Microsoft
SQL 2012 Database) capítulo 5
A SQL Server schema is a logical namespace within a database. A DBA can use
schemas to organize the large number of objects that a database stores, as well as
the permissions granted to those objects. A schema both acts as a collection of
securable objects and is a securable object itself.
Esquema :
Espacio lógico dentro de una base de datos. se puede usar un DBA
(Administrador de Base de Datos) usa esquemas para organizar objetos que
almacena la base y los permisos a los objetos (Recursos de SQL Server, tablas,
vistas, procedimientos,etc).
● Actúa como una colección de objetos asegurables y en sí mismo es un objeto
asegurable. ¿?
Encriptación
Proceso de codificación de datos usando un algoritmo para que sea ilegible sin un
acceso a clave para decodificar la información.
● El texto sin formato se convierte en texto cifrado utilizando varios algoritmos
diferentes con diferentes niveles de seguridad y tamaño de clave.
● La protección de llaves es fundamental y SQL Server proporciona una gran
infraestructura de gestión de claves.
Stored Procedures
A stored procedure is a prepared SQL code that you can save, so the code
can be reused over and over again.
So if you have an SQL query that you write over and over again, save it as a
stored procedure, and then just call it to execute it.
sql_statement
GO;
Triggers:
A trigger is a special type of stored procedure that automatically runs when an event
occurs in the database server. DDL triggers run in response to a variety of data
definition language (DDL) events and certain system stored procedures that perform
DDL-like operations. Funcionan para (DDL DML y
Notas profe:
Logins, users, etc
● Login: son los accesos al servidor, lo cual no quiere decir que puedan acceder a las bases de datos
que allí hay. Para poder acceder a cada una de
las bases de datos se necesita un user.
● User: usuario de la base de datos. Da acceso a la base de datos, pero esto tampoco quiere decir que
pueda hacer cualquier operación sobre la base de
datos, en principio no puede hacer casi nada, salvo que le vayas asignando roles y otros privilegios
para darle permisos de acceso a los objetos de esa
base de datos.
En SQL Server nos encontramos con tres niveles o capas en los cuales podemos gestionar la
seguridad.
● Servidor, en él podemos gestionar quién tiene acceso al servidor y quién no, y además gestionamos
qué roles va a desempeñar. Para que alguien pueda
acceder al servidor debe tener un inicio de sesión (login) asignado, y a éste se asignaremos los roles
o funciones que puede realizar sobre el
servidor.
El que alguien tenga acceso al servidor no quiere decir que pueda acceder a las bases de datos que
se encuentran en él. Para ello hay que tener acceso a
la siguiente barrera de seguridad, que es a nivel de
● Base de datos: . Para que un login tenga acceso a una base de datos, tenemos que crear en ella un
usuario (user). Deberemos crear un usuario en cada una de las bases de datos a las que queramos
que acceda un login.
Análogamente, el que un usuario tenga acceso a una base de datos no quiere decir que tenga
acceso a todo su contenido, ni a cada uno de los objetos que
la componen. Para que esto ocurra tendremos que irle concediendo o denegando permisos sobre
cada uno de los objetos que la componen.
A continuación podéis observar un gráfico que refleja este modelo.
Segmentar horizontalmente:
Segmentar Verticalmente: