Les dades solen associar-se a la programació i en el món de la informació moderna es presenten en tres versions lògicament equivalents: dades descrites i utilitzades en un programa en un llenguatge de programació; dades en sistemes de bases de dades; dades en sistemes d'informació distribuïts. La programació moderna només ha donat relativa llibertat a la primera variant de formalització de la informació. Les dues segones opcions són formes més o menys fiables de proporcionar informació i relacions entre els seus components.
Dades passats i presents
La posició fonamental dels llenguatges de programació és la descripció exacta de les dades i els algorismes. Els ordinadors no "presenten" cap possibilitat d'incertesa: hi ha alguna cosa sobre la qual cal actuar i hi ha una ordre que realitza aquesta acció.
El concepte modern es basa en un fonament molt superior: hi ha un fet, i què serà exactament es determina en el lloc del seu ús. En qualsevol cas, en el moment de l'ús, les dades es revisen automàticament i es converteixen al tipus correcte. Un programador modern no està obligat a tenir cura de la seva descripció preliminar i l'observació de la compatibilitat de tipus a l'algorisme.
Procés de transició:
- de les dades escrites i la seva descripció obligatòria abans d'utilitzar;
- a dades sense escriure i lliure de qualsevol obligació de descriure-les i utilitzar-les.
De fet, podem reconèixer la relativa relaxació dels requisits de formalització: només està disponible a l'entorn de les eines de programació modernes. En temps d'execució, el tipus de cada dada es fixa i la seqüència d'ordres està ben definida.
Tipus i modelatge
Les matemàtiques i la física, el comerç i la producció, l'economia i altres àrees on s'utilitzen els números, sempre han funcionat amb dades i no han donat cap importància al concepte de tipus. El fet que els nombres poguessin ser sencers o fraccionats no importava realment.
Cada fórmula o acció específica podria donar un nombre enter, una fracció infinita, un nombre real o complex. Fins ara, hi ha meravelles de la ment com infinitament petites i infinitament grans. A més, aquests miracles fins i tot tenen propietats.
Encara no hi ha llibertat de programació. Tot s'ha de formalitzar estrictament. El concepte de dades és, en primer lloc, un tipus:
- enter;
- booleà;
- car;
- cadena i així successivament.
Els noms dels tipus poden diferir en diferents llenguatges de programació, però sempre hi ha un nombre enter o real, un valor booleà, un símbol,línia. Encara queden relíquies i idees específiques: nombre enter sense signe, codi, byte, paraula, paraula doble, cadena de longitud fixa.
El concepte de dades en un sistema de dades no té llibertat. El llenguatge SQL - "internacional" (hi ha un dialecte per a cada base de dades moderna) - no tolera cap inexactitud no només en les dades, sinó també en les consultes SQL. Un error en la sol·licitud és una garantia de l'absència de resultat. No cal parlar de les infraccions de les descripcions.
La modelització de processos d'informació i representacions de dades és l'única manera segura de construir una estructura que pugui evolucionar i adaptar-se a les condicions canviants.
Dinàmica de l'original
La informació natural és un canvi continu. Donar una descripció formal i un concepte d'un model de dades en una àrea temàtica específica significa resoldre tres problemes:
- definiu quines dades hi ha aquí;
- formalitzar la relació entre ells;
- descriu processos per canviar dades i relacions.
Un exemple d'un conjunt de dades d'un algorisme senzill en JavaScript: una còpia reduïda del model fins i tot del sistema de gestió de bases de dades més sòlid.
És que en el segon cas, els experts i especialistes, a l'hora de dissenyar estructures de dades, taules i relacions, normalment no veuen (és molt difícil cobrir una gran quantitat d'informació natural) l'essència de les coses, i s'obté un conjunt feixuc i no desenvolupat de munts de dades, mentre que a l'àrea temàtica la informació font circula amb llibertat i facilitat.
Estàticpossible
És una pràctica habitual de JavaScript incloure codi adjunt a una pàgina i funcions assignades als esdeveniments a les etiquetes de la pàgina. De qualsevol manera, les etiquetes de pàgina defineixen les dades que un determinat recurs web accepta, modifica o crea.
Si concentreu el vostre codi de gestor amb molta cura en els esdeveniments d'element, i no en el codi de la pàgina en conjunt, aquesta és la millor sortida. Idealment, quan el codi no introdueix dades noves o no soluciona les dades disponibles, sinó que se centra en què té exactament en un moment concret.
De fet, si definiu el concepte de "dades" com una descripció mínimament estàtica de la informació font i la seguiu, això vol dir que teniu possibilitats d'èxit.
Pel que fa a les bases de dades, les coses són molt més complicades. Qualsevol codi JavaScript està "proporcionant" funcionalitat a la pàgina. Qualsevol base de dades és una col·lecció de taules, relacions entre elles, procediments emmagatzemats, consultes i funcionalitats disponibles des de l'exterior.
L'estàtica és el problema de qualsevol algorisme. El concepte modern de dades és estàtic: un nombre, una cadena, un caràcter, etc. Quan es processa o s'escriu en una taula de base de dades, tot surt sense problemes. Però quan adquireix l'original una dimensió o un significat diferent? Opció 1: canvieu el signe, però les connexions i les sol·licituds poden entrar immediatament.
Estàtica i objectes
Definir el concepte de "dades" com a objecte canvia la situació de manera espectacular. L'objecte té la seva pròpia estructura. Aquí podeu utilitzar qualsevol descripció de qualsevol variable. El paper no jugarà. Un objecte té mètodes a través dels quals les dades estan disponibles. Des de totutilitzat en el camp de la programació, és a dir, tres mètodes bàsics: llegir, escriure, canviar. Podeu afegir-ne més per comparar, cercar, clonar, etc.
L'àrea temàtica imposa una sèrie de propietats a cada dada. Així, resulta que el concepte de dades es transforma en una mena de descripció que es pot canviar dinàmicament. L'estàtica dins d'un objecte dóna dinàmica fora d'ell.
Canviant la combinació de descriptors estàtics dins d'un objecte, no us haureu de preocupar per la dinàmica de les seves relacions amb altres objectes.
Programació i presentació de dades
Què són les dades? La consciència pública ja està acostumada a les tecnologies de la informació, treballa als núvols i disposa de contenidors en espais virtuals. Ara, no només els programadors i usuaris professionals, sinó també la gent comuna és competent en matèria d'informació i el seu ús.
Però què és la programació? Fins avui, l'opinió pública dóna la següent definició a aquest concepte i als seus conceptes:
- La informació i les dades són els conceptes bàsics utilitzats en informàtica.
- Les dades són una determinada manera de rebre i registrar observacions relatives a la realitat circumdant.
- Són simples i complexes (estructures), primàries i secundàries.
- Una base de dades és una col·lecció de materials independents presentats de manera sistemàtica perquè es puguin trobar, modificar i utilitzar.
Quin objectiu és això? Autors autoritzatsaixò crec. La pràctica real tendeix a garantir que cada àrea temàtica determina el seu sistema de dades correcte i ofereix totes les oportunitats per construir un bon model dinàmic.
No és estrany que un client (consumidor) imposa la seva pròpia opinió a un programador (dissenyador de bases de dades) sobre com i què ha de fer. Des del punt de vista de la programació, qualsevol desig del client es pot complir amb la màxima precisió.
Necessita Oracle per resoldre el problema del pressupost per al manteniment del subministrament d'aigua rural (edifici 21 al poble) - bo. Es necessita MySQL per organitzar un sistema de seguiment dels articles de correu per a totes les oficines de correus de Rússia; també funcionarà tot.
Sempre podeu compondre qualsevol algorisme i donar accés a qualsevol representació de la informació dins de la definició del concepte de dades, que estableix el desenvolupador del sistema de gestió de bases de dades o llenguatge de programació. La pregunta és diferent: com fer-ho amb uns costos mínims en la màxima dinàmica?
Bases de dades, exemples
Es crea una base senzilla sense model. Els conceptes bàsics de dades i comunicació són petits, la funcionalitat és molt senzilla. Per exemple, per a una institució d'educació superior necessiteu:
- taula de professors;
- taula de grup (clau i número de grup);
- taula general d'estudiants (s'utilitzen les claus de grup).
El degà vol conèixer l'evolució dels professors. La taula de professors té camps:
- cognom;
- nom;
- patronymic;
- número de grup supervisat.
La taula de l'estudiant té camps:
- cognom;
- nom;
- patronymic;
- data de naixement;
- GPA (per a totes les assignatures);
- número de grup.
Poden haver com a mínim dues opcions de mostreig: amb el nom del professor, podeu anar al número del grup i veure tots els alumnes i les seves puntuacions mitjanes, o bé pel cognom del professor i el darrer nom de l'estudiant, podeu veure la puntuació mitjana de l'últim.
Fins i tot en una versió tan senzilla, els problemes estan garantits i caldrà canviar alguna cosa. Situació: el professor es va emmal altir, un mes el substitueix, és a dir, supervisa dos grups. Només hi ha un camp sota un número de grup a la taula del professor.
Per resoldre el problema, cal afegir un camp duplicat. I si dos es posen mal alts, afegiu tres camps. Així que la taula de professors comença a créixer des de zero.
Hi ha una altra opció: substituir el camp numèric de la clau de grup per un de simbòlic. Aleshores, cada vegada que seleccioneu, haureu de convertir la cadena en una seqüència de tecles i una consulta sql es convertirà en diverses.
Un exemple més prometedor no és fer taules, sinó fer objectes. Aleshores el professor és un objecte, i pot tenir diversos grups supervisats. Però sempre és un objecte. L'objecte professor té una clau única, però pot tenir diversos grups supervisats. El grup també té una clau única. Un estudiant també.
Les tres posicions no només estan disponibles dins de la tasca, sinó que es poden desenvolupar encara més.
Bases orientades a objectes
Líders del sector de la informacióofereixen bases de dades relacionals clàssiques. Estan provats per la vida, funcionen, són segurs, fiables i, en cas de problemes, permeten restaurar la informació.
Les bases de dades orientades a objectes (OODB) es van començar a desenvolupar a mitjans dels anys vuitanta i, segons autors autoritzats, són prometedores fins als nostres dies. Però fins ara, a part de les teories fonamentals i les disposicions conceptuals, no hi ha cap OODB que hagi aconseguit la mateixa qualificació i distribució que MySQL, MS SQL Server o Oracle en totes les seves diverses encarnacions.
Però, què passa si la definició, el concepte de dades, tipus, atributs, classes, jerarquies és proposat per un desenvolupador la qualificació del qual és insuficient per crear una comunitat de programadors que professin la mentalitat d'aquest OODB? Haurem de confiar en les nostres pròpies forces.
S'han creat més de trenta variants d'OODB a l'entorn Linux. Però, on és la garantia que la base de dades creada no requerirà més funcionalitats? L'entorn Windows no ofereix gaires garanties en aquest àmbit.
Solució orientada a objectes
No obstant això, hi ha una solució. Utilitzant MySQL com a exemple, podeu mostrar com les taules relacionals estàndard es converteixen en un model orientat a objectes del problema que es resol.
Aquí no hi ha cap base de dades, però sí un entorn per formar el vostre propi sistema d'objectes. El poder de MySQL només s'utilitza com a memòria relacional per a taules de files d'informació. La lògica d'ús la determina el propi desenvolupador. En particular, hi ha una taula is_cache. Té de totdiversos camps bàsics:
- owner_code;
- session_code;
- h_code;
- a_sorpresa;
- a_contents.
La resta de camps tenen funcions de servei. Aquesta taula es troba a l'entrada de qualsevol sol·licitud i registra la seva arribada. El que farà el model de base de dades ho determina el seu desenvolupador. El que encaixarà al camp de contingut (a_contents) ve determinat pels objectes del model creat pel desenvolupador.
Hi ha quatre coses en aquesta idea: hit, hit session, codi d'historial de visites i contingut específic. Què és una trucada, quin sistema d'objectes s'ha de construir, ho determina el desenvolupador. El que s'entén per sessió (procés de treball) ho determina el desenvolupador. El codi de l'historial és la possibilitat de revertir les sol·licituds.
Les taules aquí no tenen res a veure amb l'àrea temàtica. Hi ha un controlador de trucades (is_cache), hi ha registre (is_customs), hi ha un historial de trucades (is_histories). Les taules restants estan determinades per la tasca que s'està resolent.
De fet, aquesta solució suggereix crear el vostre propi OODB basat en el model de base de dades del domini construït i el problema que s'està solucionant. Aquí hi ha un gran avantatge: aquest és el vostre propi concepte de dades, el vostre propi model de presentació i la relació entre ells. Aquí hi ha una base: una gran base de dades relacional. No hi haurà problemes per buscar alguna cosa i per entendre alguna cosa malament.
Model: sistema d'objectes + DBMS
És gairebé impossible canviar res en tecnologia de la informació. La veritable revolució de la informació encara està lluny. consciència professionalels desenvolupadors de programari no canviaran les tradicions clàssiques. Però encara hi ha una manera de sortir de la situació.
Usant sistemes moderns de gestió de bases de dades fiables com a base per crear un entorn per a l'existència del vostre propi model, podeu aconseguir un èxit notable.
En qualsevol cas, hauràs de construir una vista o un model de dades per resoldre la tasca, però cal fer-ho correctament: que sigui un sistema d'objectes, i un bon SGBD sigui el seu entorn.