Bevezető példa
Az alábbi táblázat segítségével szemléltetjük, hogy melyik partnernek (P1, P2, P3, P4) melyik áruból (A1, A2, A3) mennyit kell szállítani:
|
A1 |
A2 |
A3 |
P1 |
5 |
3 |
5 |
P2 |
1 |
0 |
0 |
P3 |
0 |
2 |
5 |
P4 |
3 |
0 |
4 |
Arra a kérdésre, hogy „Összesen mennyi A2-t kell kiszállítani?", mindenki azonnal megválaszolja, hogy ötöt. Megállapodás nélkül is tudjuk, hogy egy konkrét partner sorának és egy konkrét áru oszlopának találkozásában szereplő számértékek a kért szállítási mennyiségek. Tehát a válasz az egyes partnerekre vonatkozó, az A2 termék oszlopában szereplő számok összege; jelen esetben a 3+0+2+0=5. Természetesen más típusú kérdést is feltehetnénk, melyre egészen más algoritmus szerint kellene a vezérsortól lefelé és a vezéroszloptól jobbra található számokat feldolgozni.
Például:
Melyik partnernek kell az összes áruból szállítani?
Melyik áruból kell a legtöbbet szállítani P4-nek?
Kinek kell kizárólag egyféle áruból szállítani?
Egy biztos: a konkrét partner sorának és a konkrét áru oszlopának metszéspontjában éppen a közöttük definiált kapcsolat (a partnernek az áruból szállítandó mennyiség) számosított alakja áll. Egy program számára az előre definiált kapcsolat adatainak ideiglenes tárolása a vezérsor és -oszlop nélkül kerül felhasználásra. Tisztázzuk, hogy az ilyen, 4 sorból és 3 oszlopból álló számtáblázat pontosan azért nevezhető majd mátrixnak, mert előre rögzített a sorok és az oszlopok száma.
A mátrix számítógépes megfelelője a kétdimenziós tömb. A tömb fogalma már magában hordozza a fix számú sor és oszlop meglétét. Számítógépes háttértárolón viszont nem lehet tömbben tárolni a partnerek és áruk viszonyának adatait, hiszen számuk olyannyira bizonytalan, hogy nem is korlátozható. (A partnerek és az áruk halmaza általában bővülhet.) A szükséges adatfájlok szerkezetét ilyen esetben körültekintően kell megtervezni. Egy speciális adatfájl az adattábla, melynek csak a sorai bővülhetnek, de az oszlopai előre pontosan rögzítettek. Persze rögzített számban kiválasztott partner illetve áru adatait - akárcsak a példában - már kétdimenziós tömbben fogjuk feldolgozni a memóriába történő beolvasás után.
Előfordulhat, hogy a kapcsolatok tárolására nem számot használunk. Az alábbi táblázat segítségével például azt szemléltetjük, hogy melyik cégtől (C1, C2, C3) melyik tanfolyamon (T1, T2, T3) volt már résztvevő:
|
T1 |
T2 |
T3 |
C1 |
+ |
- |
- |
C2 |
- |
+ |
+ |
C3 |
- |
+ |
- |
Azonnal tudjuk, hogy csak kétféle érték használható fel, és a táblázatban szereplő + jelet az igenhez, a - jelet pedig a nemhez kötjük. A „Melyik cég nem küldött résztvevőt a T3-as tanfolyamra?" kérdés megválaszolásához azokat a cégeket soroljuk fel, melyeknek a T3-as tanfolyammal való metszéspontjában a '-' jel található: C1 és a C3.
Amikor további vagy hatékonyabb feldolgozásra is szükség van, gyakran számosítjuk a logikai értékeket is. Jelen esetben lehetne az igen 1-es és a nem 0 vagy -1, és akkor még nem voltunk tekintettel az ismeretlen értékre (a 'nincs információ' esetére).
További kérdés:
Melyik cégtől nem volt még résztvevő a T2 tanfolyamon?
Melyik tanfolyamon voltak a résztvevők egyetlen cégtől?
A továbbiakban csak olyan táblázatról lesz szó, melyben az értékek számok, és mind a sorok, mind az oszlopok száma fix.