Dalam rangka ketersediaan data dalam rangka pengalihan wewenang SMA dan SMK ke provinsi, Dinas Pendidikan Provinsi Jawa Timur bekerja sama dengan Pusat Data dan Statistik Pendidikan.
Pola Struktur Dapodik
Individual
Tidak ada variabel/field untuk menyimpan data agregat. Semua nilai agregat diperoleh dari operasi “count” & “sum”
Kodifikasi

Topologi Relasional

Strong Reference

Skala Nasional
- Scalable: struktur mampu menampung data nasional.
- Simetris: struktur basisdata kementerian sama dengan struktur basisdata sekolah.
- Object approach: primary key merupakan object id, sedapat mungkin single primary key, relasi dependent diminimalkan.
Longitudinal
Data dinamis dibuat multi-valued berdasar periode: data yang lampau tidak hilang. Memungkinkan membaca trend.

Distributed Design
Referensi tidak boleh dihapus, yang tidak dipakai di-expired-kan.

Kendali Sinkronisasi
Sinkronisasi didasarkan atas selisih waktu “Last update” dengan “Last sync”.

Kendali Validasi
Setiap tabel yang mendapat input dari sekolah, ada log validasinya. Satu record dapat mendapat lebih dari satu issue.

Query
Jumlah Guru
SELECT
dbo.sekolah.kode_wilayah,
dbo.sekolah.sekolah_id,
Sum(
CASE WHEN dbo.ptk.jenis_ptk_id IN (3, 4, 5, 6, 12, 13, 14) THEN 1 ELSE 0 END
) AS JML_GURU
FROM
dbo.sekolah
INNER JOIN ref.Tabel_Kab ON ref.Tabel_Kab.kode_kab = SUBSTRING(dbo.sekolah.kode_wilayah, 1, 4)
INNER JOIN ref.Tabel_Kec ON ref.Tabel_Kec.kode_kab = dbo.sekolah.kode_wilayah FULL
OUTER JOIN dbo.ptk ON dbo.ptk.entry_sekolah_id = dbo.sekolah.sekolah_id
WHERE
(dbo.sekolah.Soft_delete = 0)
AND dbo.ptk.Soft_delete = 0
GROUP BY
dbo.sekolah.npsn,
dbo.sekolah.kode_wilayah,
ref.Tabel_Kec.nama,
ref.Tabel_Kab.nama,
dbo.sekolah.sekolah_id,
dbo.sekolah.nama
Jumlah Siswa
SELECT
dbo.sekolah.npsn,
dbo.sekolah.kode_wilayah,
ref.Tabel_Kec.nama AS Kec,
ref.Tabel_Kab.nama AS Kab,
ref.bentuk_pendidikan.nama AS Jenjang,
dbo.sekolah.sekolah_id,
dbo.sekolah.nama,
COUNT(dbo.peserta_didik.peserta_didik_id) AS JML_SISWA
FROM dbo.sekolah
INNER JOIN ref.Tabel_Kab
ON ref.Tabel_Kab.kode_kab = SUBSTRING(dbo.sekolah.kode_wilayah, 1, 4)
INNER JOIN ref.Tabel_Kec
ON ref.Tabel_Kec.kode_kab = dbo.sekolah.kode_wilayah
INNER JOIN ref.bentuk_pendidikan
ON dbo.sekolah.bentuk_pendidikan_id = ref.bentuk_pendidikan.bentuk_pendidikan_id
LEFT JOIN dbo.ptk
ON dbo.ptk.entry_sekolah_id = dbo.sekolah.sekolah_id
LEFT JOIN dbo.rombongan_belajar
ON dbo.rombongan_belajar.ptk_id = dbo.ptk.ptk_id
AND dbo.rombongan_belajar.sekolah_id = dbo.sekolah.sekolah_id
LEFT JOIN dbo.anggota_rombel
ON dbo.anggota_rombel.rombongan_belajar_id = dbo.rombongan_belajar.rombongan_belajar_id
LEFT JOIN dbo.peserta_didik
ON dbo.peserta_didik.sekolah_id = dbo.sekolah.sekolah_id
AND dbo.anggota_rombel.peserta_didik_id = dbo.peserta_didik.peserta_didik_id
WHERE (dbo.sekolah.Soft_delete = 0)
AND dbo.ptk.Soft_delete = 0
AND dbo.rombongan_belajar.Soft_delete = 0
AND dbo.rombongan_belajar.semester_id IN ('20142')
AND dbo.anggota_rombel.Soft_delete = 0
AND dbo.peserta_didik.Soft_delete = 0
GROUP BY dbo.sekolah.npsn,
dbo.sekolah.kode_wilayah,
ref.Tabel_Kec.nama,
ref.Tabel_Kab.nama,
ref.bentuk_pendidikan.nama,
dbo.sekolah.sekolah_id,
dbo.sekolah.nama
PTK
SELECT dbo.sekolah.nama, dbo.sekolah.bentuk_pendidikan_id, dbo.sekolah.alamat_jalan, dbo.sekolah.kode_wilayah, dbo.sekolah.status_sekolah, dbo.ptk.nama AS Expr1, dbo.ptk.jenis_kelamin, dbo.ptk.tempat_lahir, dbo.ptk.tanggal_lahir, dbo.ptk.nuptk,
dbo.ptk.status_kepegawaian_id, dbo.ptk.jenis_ptk_id, dbo.ptk.alamat_jalan AS Expr2, dbo.ptk.ptk_id
FROM dbo.sekolah INNER JOIN
dbo.ptk ON dbo.ptk.entry_sekolah_id = dbo.sekolah.sekolah_id
WHERE (dbo.sekolah.Soft_delete = 0) AND (dbo.sekolah.bentuk_pendidikan_id = 13) OR
(dbo.sekolah.bentuk_pendidikan_id = 14) OR
(dbo.sekolah.bentuk_pendidikan_id = 15) OR
(dbo.sekolah.bentuk_pendidikan_id = 29) AND (dbo.sekolah.kode_wilayah LIKE '05%')
Sekolah Aktif
SELECT
dbo.sekolah.npsn,
dbo.sekolah.kode_wilayah,
ref.Tabel_Kec.nama AS Kec,
ref.Tabel_Kab.nama AS Kab,
ref.bentuk_pendidikan.nama AS Jenjang,
dbo.sekolah.sekolah_id,
dbo.sekolah.nama
FROM
dbo.sekolah
INNER JOIN ref.Tabel_Kab ON ref.Tabel_Kab.kode_kab = SUBSTRING(dbo.sekolah.kode_wilayah,1,4)
INNER JOIN ref.Tabel_Kec ON ref.Tabel_Kec.kode_kab = dbo.sekolah.kode_wilayah
INNER JOIN ref.bentuk_pendidikan ON dbo.sekolah.bentuk_pendidikan_id = ref.bentuk_pendidikan.bentuk_pendidikan_id
WHERE
(dbo.sekolah.kode_wilayah LIKE '05%') AND
(dbo.sekolah.Soft_delete = 0)
Komentar