ECM BY SYSOPENDIGIA APPETITE 2007 -...
Transcript of ECM BY SYSOPENDIGIA APPETITE 2007 -...
ECM BY SYSOPENDIGIA APPETITE 2007
TIETOKANNAN HALLINTASUUNNITELMA
Holm Timo – [email protected]
Kilpeläinen Mika – [email protected]
IST5SO
CREATIVE COMMONS LISENSOITU
http://creativecommons.org/licenses/by-nc-sa/1.0/fi/
HALLINTASUUNNITELMA 9.3.2010
hallintasuunnitelma_1.31 Sivu 2 / 15 Copyright © E.S.A.
SISÄLLYS
1 YLEISTÄ ............................................................................................ 3
2 KANNAN METATIETO JA DOKUMENTOINTI .............................................. 3
3 LAITTEISTO JA OHJELMISTOT ............................................................... 3
3.1 Levyositus............................................................................................. 4
4 TESTAUS ........................................................................................... 5
5 VARMUUSKOPIOINTI ........................................................................... 5
6 HAJAUTUS ......................................................................................... 7
7 KÄYTTÄJÄT JA KÄYTTÖOIKEUDET .......................................................... 7
8 OPTIMOINTI ...................................................................................... 8
8.1 Indeksit ................................................................................................ 8
8.2 Näkymät ............................................................................................... 9
8.2.1 YKSITYISASIAKKAAT ........................................................................... 9
8.2.2 YRITYSASIAKKAAT ............................................................................ 10
8.2.3 Näkymäskripti .................................................................................. 11
9 TAULUKOOT .................................................................................... 11
10 MAHDOLLISESTA HÄIRIÖSTÄ PALAUTUMINEN JA
ONNETTOMUUSTILANTEET ................................................................. 12
LIITE I TIETOKANNAN LUONTISKRIPTI .................................................. 13
HALLINTASUUNNITELMA 9.3.2010
hallintasuunnitelma_1.31 Sivu 3 / 15 Copyright © E.S.A.
1 YLEISTÄ
Tässä dokumentissa on kuvattu ECM Appetite – projektin MS SQL SERVER 2005- tietokannan
hallintasuunnitelma. Tietokanta tuotetaan Ohjelmistoprojekti – opintojaksolle sekä tietokanta –
opintomoduuliin. Tietokannan rakenne on kuvattu dokumentissa ”Appetite – projektin
tietokantasuunnitelma”.
Työryhmänä toimi Timo Holm ja Mika Kilpeläinen.
2 KANNAN METATIETO JA DOKUMENTOINTI
Suunniteltu kanta on dokumentoitu tarkasti kaavioineen dokumentissa ”Appetite –
tietokantasuunnitelma”. Tulevaisuudessa tehdyt muutokset merkitään dokumenttiin sekä tehdään
erillinen lisenssi- ja versionhallintataulu, johon kuvataan lyhyesti muutokset päivämäärineen ja
tekijöineen. Kuviossa 1 on kuvattu versionhallintaulun rakenne.
Kuvio 1 Versionhallintaulu tulevaisuudessa
VERSIO
PK versioID int
versio varchar(10)
muutokset varchar(250)
tekijä varchar(50)
pvm datetime
3 LAITTEISTO JA OHJELMISTOT
3.1 Asennettavat ohjelmistot ja laitteistovaatimukset
Tietokanta tulee toimimaan MS SQL Server 2005 – tietokantaohjelmistolla. Kannan
käyttöliittymäjärjestelmänä toimii MS Office Sharepoint Server 2007, joka vaatii seuraavat
ohjelmistot:
MS SQL Server 2005 - tietokantaohjelmisto
Windows Server 2003 - palvelinohjelmisto
IIS - julkaisupalvelin
ASP.NET 2.0 – ASP – sivujen sovelluskehys
.NET Framework 3.5 – C# - koodin sovelluskehys
HALLINTASUUNNITELMA 9.3.2010
hallintasuunnitelma_1.31 Sivu 4 / 15 Copyright © E.S.A.
Tuotantokäyttöön suositellut laitteistovaatimukset SQL Server 2005 ja Sharepoint Server –
kokoonpanolle ovat
vähintään 2.5 GHz prosessori
vähintään 2 GB keskusmuistia
tarvittava määrä kiintolevytilaa, joka on alustettu NTFS – tiedostojärjestelmään.
Kaikissa ohjelmistoissa tulee olla ohjelmistopäivitykset asennettuna. Taulukossa 1 on esitetty
tarkemmin ohjelmistovaatimukset.
Taulukko 1: Asennettava ohjelmistot asennusjärjestyksessä
Ohjelmisto Kuvaus Hankinta Huomautus
Windows Server 2003 palvelinohjelmisto CD/DVD/image kaupallisena
Internetistä
Lataa ja asenna päivitykset
heti asennuksen jälkeen
.NET Framework .NET ohjelmistokehys Internetistä, Microsoftin sivuilta Asenna seuraavassa järjestyksessä:
1) .NET 2.0
2) .NET 3.0
3) .NET 3.5
ASP.NET 2.0 ASP.NET sovelluskehys Internetistä, Microsoftin sivuilta
IIS julkaisupalvelin Windows Server 2003 Vaatii erillisasennuksen ja konfiguroinnin
SQL Server 2005 tietokantaohjelmisto CD/DVD/image kaupallisena
Internetistä
Asenna
ohjelmistopäivitykset
Microsoft Sharepoint
Office Server 2007
Palvelinohjelmisto CD/DVD/image kaupallisena
Internetistä
Asennus ja konfiguronti
saattaa vaatia
erityisasiantuntemusta
3.2 Levyositus
Appetite tietokannan levyositukseen käytetään RAID1 tekniikkaa, missä sama data tallennetaan
kahdelle (tai useammalle) erilliselle levylle, jolloin toisen levyn hajotessa kaikki data säästyy.
Periaatteessa tekniikka myös kaksinkertaistaa lukunopeuden.
HALLINTASUUNNITELMA 9.3.2010
hallintasuunnitelma_1.31 Sivu 5 / 15 Copyright © E.S.A.
Kuvio 2 RAID1
4 TESTAUS
Laitteistoa ja tietokantaa tullaan testaamaan vähintään puolen vuoden välein. Testit suoritetaan
yksinkertaisesti tarkistamalla senhetkisten SQL - hakujen nopeus (oltava alle 1 ms) sekä laitteiston
yleinen toiminta.
5 VARMUUSKOPIOINTI
Tietokannasta otetaan varmuuskopiot automaattisesti viikottain, sunnuntaisin kello 00.00.
Varmuuskopiot menevät omalle levyosiolle. Varmuuskopiointiin käytetään kuvion 3 mukaista
Maintance Plan Wizard – työkalua, johon määritetään työtehtävät ja aikataulut kuvioiden 4 ja 5
mukaisesti. Varmuuskopionnin yhteydessä tarkistetaan automaattisesti tietokannan yhteys ja
järjestetään indeksit tarvittaessa uudelleen.
HALLINTASUUNNITELMA 9.3.2010
hallintasuunnitelma_1.31 Sivu 6 / 15 Copyright © E.S.A.
Kuvio 3 Maintance Plan Wizard
Kuvio 4 Määritetään tehtävät
HALLINTASUUNNITELMA 9.3.2010
hallintasuunnitelma_1.31 Sivu 7 / 15 Copyright © E.S.A.
Kuvio 5 Määritetään aikataulutus
6 HAJAUTUS
Tietokanta tullaan hajauttamaan seuraavasti:
tietokantaohjelmisto SQL Server asennetaan C – aseman juureen
Sharepoint – ohjelman oma tietokanta sijoitetaan D – aseman juureen
Projektissa toteutettu kanta sijoitetaan D - aseman juureen
varmuuskopio E – aseman juureen.
Tällä saadaan loogisesti erotettua nämä eri kokonaisuudet toisistaan.
7 KÄYTTÄJÄT JA KÄYTTÖOIKEUDET
Tietokantaa luodaan 5 eri tason käyttäryhmää, jotka on kuvattu taulukossa 2
Taulukko 2: Käyttäryhmät
Käyttäjäryhmä Kuvaus Oikeudet Taulut
SYSAdmin Järjestelmän
hallinnoija
Kaikki oikeudet
järjestelmä- ja tietokantatasolla
KÄSITTELIJÄ,
HENKILÖ,
KULUTTAJA,
YRITYS,
ASIAKAS,
POSTINUMERO,
KOORDINAATTI,
TARJOUSPYYNTÖ,
SAHKOSOPIMUS,
JONO
HALLINTASUUNNITELMA 9.3.2010
hallintasuunnitelma_1.31 Sivu 8 / 15 Copyright © E.S.A.
Käyttäjäryhmä Kuvaus Oikeudet Taulut
DBAdmin tietokannan
hallinnoija
Kaikki oikeudet
tietokantatasolla
KÄSITTELIJÄ,
HENKILÖ,
KULUTTAJA,
YRITYS,
ASIAKAS,
POSTINUMERO,
KOORDINAATTI,
TARJOUSPYYNTÖ,
SAHKOSOPIMUS,
JONO
Sovelluskehittäjä tietokannan
ohjelmoija
tietokannan
rakenteen muutokset
KÄSITTELIJÄ,
HENKILÖ,
KULUTTAJA,
YRITYS,
ASIAKAS,
POSTINUMERO,
KOORDINAATTI,
TARJOUSPYYNTÖ,
SAHKOSOPIMUS,
JONO
Käsittelijä Sähköyhtiössä
työskentelevä asian käsittelijä omassa
käyttöliittymässään
luku, lisäys ja
päivitys omiin tauluihin.
KÄSITTELIJÄ,
HENKILÖ,
KULUTTAJA,
YRITYS,
ASIAKAS,
POSTINUMERO,
KOORDINAATTI,
TARJOUSPYYNTÖ,
SAHKOSOPIMUS,
JONO
Asiakas Kooditaso ASP.NET –
sivuilla
luku ja lisäys HENKILÖ,
KULUTTAJA,
YRITYS,
ASIAKAS,
POSTINUMERO,
KOORDINAATTI,
TARJOUSPYYNTÖ,
SAHKOSOPIMUS,
JONO
8 OPTIMOINTI JA NÄKYMÄT
8.1 Indeksit
Kun SQL Serverissä luo työkaluilla uuden taulun, laittaa se oletusarvoisesti klusteroidun indeksin
sarakkeeseen, joka on määritelty perusavaimeksi. Tämän ansiosta lisäindeksien luontia ei tarvita.
Tärkeinpänä indeksinä suorituskyvyn kannalta on postinumerotaulun postinumero, mikä on osana
Live.com karttapalvelun hauissa.
HALLINTASUUNNITELMA 9.3.2010
hallintasuunnitelma_1.31 Sivu 9 / 15 Copyright © E.S.A.
8.2 Näkymät
Tietokantahaut tullaan tekemään näkymistä. Tässä luvussa kuvataan yksityiskohtaisesti
tietokannan näkymät ja niiden sarakkeet. Jokaisesta näkymästä on kuvattu taulukoissa sarakkeen
nimi sekä kuvaus.
8.2.1 YKSITYISASIAKKAAT
Tehdään näkymä Live.com karttapalvelua varten yksityisasiakkaiden hakua varten.
Taulukko 3 YKSITYISASIAKKAAT - näkymä
Sarake Kuvaus
lat_koord asiakkaan latitude koordinaatti
lon_koord asiakkaan longitude koordinaatti
etunimi asiakkaan etunimi
sukunimi asiakkaan sukunimi
lahiosoite asiakkaan lähiosoite
postinumero asiakkaan postinumero
postitoimipaikka asiakkaan postitoimipaikka
Skripti
CREATE VIEW YKSITYISASIAKKAAT
AS
SELECT
dbo.HENKILO.etunimi,
dbo.HENKILO.sukunimi,
dbo.KOORDINAATTI.lahiosoite,
dbo.KOORDINAATTI.maa,
dbo.KOORDINAATTI.lat_koord,
dbo.KOORDINAATTI.lon_koord,
dbo.KOORDINAATTI.postinro,
dbo.POSTINUMERO.postitoimipaikka
FROM
dbo.ASIAKAS INNER JOIN
dbo.KULUTTAJA ON
dbo.ASIAKAS.kuluttajaID = dbo.KULUTTAJA.kuluttajaID INNER JOIN
dbo.HENKILO ON
dbo.KULUTTAJA.henkiloID = dbo.HENKILO.henkiloID INNER JOIN
dbo.KOORDINAATTI ON
dbo.KULUTTAJA.koordinaattiID = dbo.KOORDINAATTI.koordinaattiID INNER JOIN
dbo.POSTINUMERO ON
dbo.KOORDINAATTI.postinro = dbo.POSTINUMERO.postinumero INNER JOIN
dbo.TARJOUSPYYNTO ON
dbo.ASIAKAS.asiakasID = dbo.TARJOUSPYYNTO.asiakasID INNER JOIN
dbo.SAHKOSOPIMUS ON dbo.TARJOUSPYYNTO.tarjouspyyntoID =
dbo.SAHKOSOPIMUS.tarjouspyyntoID
HALLINTASUUNNITELMA 9.3.2010
hallintasuunnitelma_1.31 Sivu 10 / 15 Copyright © E.S.A.
8.2.2 YRITYSASIAKKAAT
Tehdään näkymä Live.com karttapalvelua varten yritysasiakkaiden hakua varten.
Taulukko 4 YRITYSASIAKKAAT - näkymä
Sarake Kuvaus
lat_koord yritysasiakkaan latitude koordinaatti
lon_koord yritysasiakkaan longitude koordinaatti
yritys_nimi yritysasiakkaan nimi
lahiosoite yritysasiakkaan lähiosoite
postinumero yritysasiakkaan postinumero
postitoimipaikka yritysasiakkaan postitoimipaikka
HALLINTASUUNNITELMA 9.3.2010
hallintasuunnitelma_1.31 Sivu 11 / 15 Copyright © E.S.A.
8.2.3 Näkymäskripti
CREATE VIEW YRITYSASIAKKAAT
AS
SELECT
dbo.YRITYS.yritys_nimi,
dbo.KOORDINAATTI.lahiosoite,
dbo.KOORDINAATTI.lat_koord,
dbo.KOORDINAATTI.maa,
dbo.KOORDINAATTI.lon_koord,
dbo.KOORDINAATTI.postinro,
dbo.POSTINUMERO.postitoimipaikka
FROM
dbo.TARJOUSPYYNTO INNER JOIN
dbo.ASIAKAS ON dbo.TARJOUSPYYNTO.asiakasID = dbo.ASIAKAS.asiakasID INNER
JOIN
dbo.SAHKOSOPIMUS ON dbo.TARJOUSPYYNTO.tarjouspyyntoID =
dbo.SAHKOSOPIMUS.tarjouspyyntoID INNER JOIN
dbo.YRITYS ON dbo.ASIAKAS.yritysID = dbo.YRITYS.yritysID INNER JOIN
dbo.POSTINUMERO INNER JOIN
dbo.KOORDINAATTI ON dbo.POSTINUMERO.postinumero = dbo.KOORDINAATTI.postinro
ON dbo.YRITYS.koordinaattiID = dbo.KOORDINAATTI.koordinaattiID
9 TAULUKOOT
Tässä luvussa on arvioitu laskettuna taulujen koot ja sillä perusteella tilantarve. Taulukossa 5 on
kuvauttu taulujen koot.
Taulukko 5 Taulujen koot
Taulu Sarakemäärä Arvioitu rivimäärä Arvoitu keskim. rivin pituus Taulun nettoko
KULUTTAJA 5 100 000 10 1 000 000
YRITYS 9 50 000 15 750 000
ASIAKAS 4 150 000 5 750 000
TARJOUSPYYNTO 9 150 000 12 1 800 000
JONO 3 10 000 1 10 000
SAHKOSOPIMUS 3 140 000 2 280 000
HENKILO 3 100 100 20 2 002 000
KASITTELIJA 2 100 10 1 000
POSTINUMERO 2 yhden kaupunkialueen
arvio 100,
Suomessa max 3100
20 2000
KOORDINAATTI 6 150 000 150 22 500 000
Taulukon perusteella tilantarve tietokannalle on laskukaavan mukaan:
tilantarve = isoimpien taulujen nettokoko * 5
eli tilantarve on
22 500 000 * 5 = 112 500 000 B = 107.28836 MB
HALLINTASUUNNITELMA 9.3.2010
hallintasuunnitelma_1.31 Sivu 12 / 15 Copyright © E.S.A.
10 MAHDOLLISESTA HÄIRIÖSTÄ PALAUTUMINEN JA
ONNETTOMUUSTILANTEET
Kaikista häiriöistä tietokantajärjestelmässä ilmoitetaan järjestelmän IT – osastolle. Käyttäjille
näkyvistä häiriöistä ilmoitetaan käyttäjien ASP.NET –sivuilla.
Mikäli sattuu jokin häiriö, joka oleellisesti haittaa tietokannan toimintaa, tietokanta ajetaan alas
mikäli näin voidaan vain olosuhteiden sallitessa tehdä. Käyttäjille jätetään ilmoitus
käyttöliittymään: ”Järjestelmälle tehdään huolto. Kokeile uudestaan 2 tunnin päästä”. Tämän aikan
pyritään saamaan ongelma selville ja korjaamaan se.
Jos tietokannan tietoja sattuu katoamaan häiriön aikana, järjestelmä ajetaan alas ja otetaan
viimeisin varmuuskopio käyttöön sekä tarkistetaan kaikkien tietojen oikeellisuus.
Suuremmissa ongelmissa otetaan yhteys IT – osaston henkilöihin ja tarvittaessa Microsoftin SQL
SQL Server – tukeen.
Tietokannan hoitajan onnettomuustilanteiden varalta salasanoja säilytetään kassakaapissa, ei
pelkästään hoitajan muistilokeroissa.
HALLINTASUUNNITELMA 9.3.2010
hallintasuunnitelma_1.31 Sivu 13 / 15 Copyright © E.S.A.
LIITE I TIETOKANNAN LUONTISKRIPTI
CREATE DATABASE appetite
go
use appetite
go
-- Create tables section -------------------------------------------------
-- Table KULUTTAJA
CREATE TABLE KULUTTAJA
(
kuluttajaID Int IDENTITY(1,1)PRIMARY KEY CLUSTERED,
puhelinnumero Varchar(20) NOT NULL,
sahkopostiosoite Varchar(25) NOT NULL,
henkiloID Int NOT NULL,
koordinaattiID Int NULL
)
go
-- Table YRITYS
CREATE TABLE YRITYS
(
yritysID Int IDENTITY(1,1) PRIMARY KEY CLUSTERED,
y_tunnus char(10) NOT NULL,
yritys_nimi Varchar(50) NOT NULL,
toimiala Varchar(50) NOT NULL,
puhelin Varchar(20) NOT NULL,
sahkopostiosoite Varchar(25) NOT NULL,
fax_numero Varchar(20) NULL,
kotisivut Varchar(25) NULL,
koordinaattiID Int NULL
)
go
-- Table POSTINUMERO
CREATE TABLE POSTINUMERO
(
postinumero char(5) PRIMARY KEY CLUSTERED,
postitoimipaikka Varchar(50) NOT NULL
)
go
-- Table KOORDINAATTI
CREATE TABLE KOORDINAATTI
(
koordinaattiID Int IDENTITY(1,1)PRIMARY KEY CLUSTERED,
lahiosoite Varchar(50) NOT NULL,
maa Varchar(50) NOT NULL,
lat_koord Varchar(50) NOT NULL,
HALLINTASUUNNITELMA 9.3.2010
hallintasuunnitelma_1.31 Sivu 14 / 15 Copyright © E.S.A.
lon_koord Varchar(50) NOT NULL,
postinro char(5) NOT NULL
)
go
-- Table HENKILO
CREATE TABLE HENKILO
(
henkiloID Int IDENTITY(1,1) PRIMARY KEY CLUSTERED,
etunimi Varchar(25) NOT NULL,
sukunimi Varchar(25) NOT NULL
)
go
-- Table KASITTELIJA
CREATE TABLE KASITTELIJA
(
kasittelijaTunnus Varchar(10) PRIMARY KEY CLUSTERED,
henkiloID int NOT NULL
)
go
-- Table ASIAKAS
CREATE TABLE ASIAKAS
(
asiakasID Int IDENTITY(1,1) PRIMARY KEY CLUSTERED,
asiakastyyppi int NOT NULL CHECK(asiakastyyppi IN (0, 1)),
kuluttajaID int NULL,
yritysID int NULL
)
go
-- Table SAHKOSOPIMUS
CREATE TABLE SAHKOSOPIMUS
(
sopimusID Int IDENTITY(1,1)PRIMARY KEY CLUSTERED,
sopimuspvm Smalldatetime NOT NULL,
tarjouspyyntoID int NOT NULL
)
go
-- Table TARJOUSPYYNTO
CREATE TABLE TARJOUSPYYNTO
(
tarjouspyyntoID Int IDENTITY(1,1)PRIMARY KEY CLUSTERED,
kayttopaikka varchar(30) NOT NULL,
lammitystapa varchar(30) NOT NULL,
etusulake varchar(10) NOT NULL,
kohde_pa varchar(10) NOT NULL,
toim_pvm Smalldatetime NOT NULL,
jakelija varchar(30)NOT NULL,
asiakasID int NOT NULL,
kasittelijaTunnus Varchar(10) NULL
)
-- Table JONO
HALLINTASUUNNITELMA 9.3.2010
hallintasuunnitelma_1.31 Sivu 15 / 15 Copyright © E.S.A.
CREATE TABLE JONO
(
jonoID Int IDENTITY(1,1)PRIMARY KEY CLUSTERED,
tila tinyint NOT NULL CHECK (tila IN (0, 1, 2, 3)),
tarjouspyyntoID int NOT NULL
)
go
-- Create relationships section ------------------------------------------------
-
ALTER TABLE KOORDINAATTI ADD CONSTRAINT postinumero2 FOREIGN KEY (postinro)
REFERENCES POSTINUMERO (postinumero) ON DELETE NO ACTION
go
ALTER TABLE YRITYS ADD CONSTRAINT koordinaattiID FOREIGN KEY (koordinaattiID)
REFERENCES KOORDINAATTI (koordinaattiID) ON DELETE SET NULL
go
ALTER TABLE KULUTTAJA ADD CONSTRAINT koordinaattiID2 FOREIGN KEY
(koordinaattiID) REFERENCES KOORDINAATTI (koordinaattiID) ON DELETE SET NULL
go
ALTER TABLE KULUTTAJA ADD CONSTRAINT henkiloID FOREIGN KEY (henkiloID)
REFERENCES HENKILO (henkiloID) ON DELETE NO ACTION
go
ALTER TABLE ASIAKAS ADD CONSTRAINT kuluttajaID FOREIGN KEY (kuluttajaID)
REFERENCES KULUTTAJA (kuluttajaID) ON DELETE NO ACTION
go
ALTER TABLE ASIAKAS ADD CONSTRAINT yritysID FOREIGN KEY (yritysID) REFERENCES
YRITYS (yritysID) ON DELETE NO ACTION
go
ALTER TABLE KASITTELIJA ADD CONSTRAINT henkiloID2 FOREIGN KEY (henkiloID)
REFERENCES HENKILO (henkiloID) ON DELETE CASCADE
go
ALTER TABLE TARJOUSPYYNTO ADD CONSTRAINT kasittelijaTunnus FOREIGN KEY
(kasittelijaTunnus) REFERENCES KASITTELIJA (kasittelijaTunnus) ON DELETE SET
NULL
go
ALTER TABLE TARJOUSPYYNTO ADD CONSTRAINT asiakasID FOREIGN KEY (asiakasID)
REFERENCES ASIAKAS (asiakasID) ON DELETE CASCADE
go
ALTER TABLE JONO ADD CONSTRAINT tarjouspyyntoID FOREIGN KEY (tarjouspyyntoID)
REFERENCES TARJOUSPYYNTO (tarjouspyyntoID) ON DELETE NO ACTION
go
ALTER TABLE SAHKOSOPIMUS ADD CONSTRAINT tarjouspyyntoID2 FOREIGN KEY
(tarjouspyyntoID) REFERENCES TARJOUSPYYNTO (tarjouspyyntoID) ON DELETE CASCADE go