Conceptos Esenciales de C# y SQL: Tipos de Datos, POO y Consultas
Clasificado en Informática
Escrito el en español con un tamaño de 7 KB
Fundamentos de C# y Bases de Datos SQL
Tipos de Datos en C#
Tipos por Valor (Value Types)
Los tipos por valor (value types) en C# se corresponden con las estructuras (struct
) del lenguaje C, con la posibilidad adicional de añadir código en forma de métodos. Las variables de tipo por valor contienen directamente sus datos.
Tipos por Referencia (Reference Types)
Los tipos por referencia (reference types) se utilizan para crear objetos dinámicamente en el heap (montón de memoria) mediante el operador new
. Se obtiene una referencia (similar a un puntero en lenguaje C) al objeto creado. Las variables de tipo por referencia almacenan una referencia a la ubicación de memoria donde se encuentra el objeto.
Programación Orientada a Objetos (POO) en C#
Polimorfismo
El polimorfismo es la capacidad de que objetos de diferentes clases puedan ser tratados de manera uniforme a través de una interfaz o clase base común. Permite almacenar objetos de un determinado tipo en variables de tipos antecesores (clases base o interfaces que implementan), a costa de solo poder acceder a través de dicha variable a los miembros comunes definidos en el tipo de la variable.
Modificadores y Conceptos Clave del Polimorfismo:
virtual
: Una clase padre permite a sus clases derivadas sobrescribir métodos marcándolos comovirtual
. Esto indica que el método puede tener una implementación diferente en una clase derivada.override
: Una clase derivada puede proporcionar una implementación específica para un método heredado que fue marcado comovirtual
(oabstract
uoverride
) en la clase base, utilizando la palabra claveoverride
.abstract
:- Clase abstracta: Se utiliza para definir clases que no pueden ser instanciadas directamente y sirven como base para otras clases. Una clase abstracta puede contener miembros abstractos y no abstractos.
- Método abstracto: Es un método declarado en una clase abstracta que no tiene implementación (solo la signatura). Las clases derivadas no abstractas deben proporcionar una implementación para todos los métodos abstractos de su clase base, utilizando
override
.
base
: Se utiliza para acceder a miembros de la clase base desde una clase derivada. Por ejemplo, un constructor de una clase derivada tiene que llamar en primer lugar a un constructor de su clase padre utilizando la palabra reservadabase
.
Modificadores de Acceso
public
: Se utiliza para marcar un miembro de una clase como accesible desde cualquier parte del código, sin restricciones.protected
: Se utiliza para que un miembro de la clase sea accesible dentro de su propia clase y por instancias de clases derivadas (es decir, únicamente las clases derivadas pueden acceder a un miembro de la clase padre marcado comoprotected
).private
: Un miembro marcado comoprivate
solo es accesible desde dentro de los métodos de la propia clase donde se declara.
Herencia
La herencia es un mecanismo fundamental de la POO que permite a una clase (clase hija o derivada) heredar atributos y métodos de otra clase (clase padre o base). La clase hija tiene todas las características de la clase madre más las características propias que le interesen. Normalmente, las clases padre son más generalizadas y las clases hijas son más concretas, especializando o extendiendo la funcionalidad de la clase base.
Métodos Virtuales (Detalle)
Un método marcado como virtual
en una clase base puede ser redefinido (sobrescrito) utilizando el mismo identificador (nombre y signatura) en una clase hija. El método virtual de la clase base puede tener una implementación por defecto, y el método que lo redefine en la clase hija (marcado con override
) puede proporcionar un comportamiento diferente. El método que finalmente se ejecutará en tiempo de ejecución dependerá del tipo real del objeto sobre el cual se realice la llamada (esto se conoce como despacho dinámico o enlace tardío).
Clases Abstractas (Detalle)
Una clase abstracta es aquella que está marcada con la palabra clave abstract
y no puede ser instanciada directamente. Sirve como una clase base para otras clases. Contiene uno o varios métodos abstractos (métodos sin implementación, solo la declaración, también marcados con abstract
). Para declarar un método abstracto, se marca con la palabra clave abstract
en la clase base. Cuando se implementa en una clase derivada concreta (no abstracta), esta debe proporcionar una implementación para todos los métodos abstractos heredados, marcando dichas implementaciones con la palabra clave override
.
Conceptos Fundamentales de Bases de Datos SQL
Vistas (Views)
Una vista en SQL es una tabla virtual cuyo contenido está definido por una consulta. Esencialmente, es el resultado de una consulta SQL sobre una o varias tablas. Se pueden especificar múltiples vistas de una tabla del esquema de la base de datos para diferentes usuarios, de forma que cada uno de ellos tenga acceso parcial a los datos almacenados, simplificando consultas complejas o mejorando la seguridad.
Procedimientos Almacenados (Stored Procedures)
Un procedimiento almacenado es un programa o conjunto de instrucciones SQL que es almacenado físicamente en una base de datos. Son escritos en un lenguaje de bases de datos propietario (por ejemplo, T-SQL para SQL Server, PL/SQL para Oracle). La ventaja de un procedimiento almacenado es que, al ser ejecutado en respuesta a una petición de usuario, se ejecuta directamente en el motor de bases de datos. Como tal, posee acceso directo a los datos que necesita manipular y solo necesita enviar sus resultados de regreso al usuario, eliminando la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes y permitiendo la reutilización de lógica de negocio.
SQL (Structured Query Language)
SQL (Structured Query Language - Lenguaje de Consulta Estructurado) es el lenguaje estándar para la comunicación entre aplicaciones y servidores de bases de datos relacionales. Es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones sobre las mismas, como consultas, inserciones, actualizaciones y eliminaciones de datos, así como la definición y modificación de la estructura de la base de datos.