BAB 6 Organisasi Berkas Banyak Key
ORGANISASI BERKAS DENGAN BANYAK KEY ORGANISASI BERKAS DENGAN BANYAK KEY PENGERTIAN ORGANISASI BERKAS DENGAN BANYAK KEY PENGERTIAN ORGANISASI BERKAS DENGAN BANYAK KEY
Organisasi berkas yang memperbolehkan record diakses oleh lebih Organisasi berkas yang memperbolehkan record diakses oleh lebih dari satu key field disebut organisasi berkas dengan banyak key. dari satu key field disebut organisasi berkas dengan banyak key.
ONE ACCESS ONE ACCESS
KEY ? KEY ? yes yes
SEQUENTIAL SEQUENTIAL
no no
ACCESS ONLY ? ACCESS ONLY ? yes no yes no
SEQUENTIAL SEQUENTIAL DIRECT ACCESS DIRECT ACCESS MULTI-KEY MULTI-KEY ORGANIZATION ORGANIZATION ONLY ? ONLY ? ORGANIZATION ORGANIZATION yes no yes no
RELATIVE RELATIVE
INDEXED ORGANIZATION ORGANIZATION SEQUENTIAL SEQUENTIAL ORGANIZATION ORGANIZATION
INDEXED
Gambar 1. Dasar Organisasi Berkas Gambar 1. Dasar Organisasi Berkas
Ada banyak teknik yang dipakai untuk organisasi berkas dengan Ada banyak teknik yang dipakai untuk organisasi berkas dengan banyak key ini. Hampir semua pendekatan bergantung pada banyak key ini. Hampir semua pendekatan bergantung pada pembentukan indeks yang dapat memberi akses langsung dengan pembentukan indeks yang dapat memberi akses langsung dengan nilai key. nilai key.
Ada 2 teknik dasar untuk pemberiaan hubungan antara sebuah indeks Ada 2 teknik dasar untuk pemberiaan hubungan antara sebuah indeks dan data record dari berkas, yaitu: dan data record dari berkas, yaitu:
Inversion Inversion
Multi-list Multi-list
DEFINISI DAN APLIKASI BERKAS DENGAN BANYAK KEY DEFINISI DAN APLIKASI BERKAS DENGAN BANYAK KEY
Akses semua record menurut nilai OVERDRAW Akses semua record menurut nilai OVERDRAW LIMIT atau semua record account dengan nilai LIMIT atau semua record account dengan nilai SOCNO.
ID yang dimilikinya atau kombinasi dari NAME, SOCNO dan Type. SOCNO dan Type.
ID yang dimilikinya atau kombinasi dari NAME,
Memerlukan akses recordnya dengan memberikan Memerlukan akses recordnya dengan memberikan
Nasabah Nasabah
Membuat laporan berkala untuk semua record Membuat laporan berkala untuk semua record account yang disortir berdasarkan ID. account yang disortir berdasarkan ID.
Pegawai Pegawai Bank Bank
Akses semua record menurut Branch dan Type.
Manajer Manajer Cabang Cabang Akses semua record menurut Branch dan Type.
SOCNO.
Banyak sistem informasi interaktif memerlukan dukungan dari berkas Banyak sistem informasi interaktif memerlukan dukungan dari berkas banyak key. banyak key.
Contoh: Contoh:
ID.
Mengindentifikasikan record account menurut nilai Mengindentifikasikan record account menurut nilai ID.
Kasir Kasir
Gambar 2. Contoh Format Record Gambar 2. Contoh Format Record Adanya pemakai yang berbeda memerlukan akses record-record ini Adanya pemakai yang berbeda memerlukan akses record-record ini dalam cara yang berbeda. dalam cara yang berbeda.
GROUP-CODE SOCNO SOCNO BALANCE BALANCE OVERDRAW OVERDRAW LAST LAST FIRST FIRST BRANCH BRANCH TYPE TYPE LIMIT LIMIT
ID NAME NAME GROUP-CODE
ID
ACCOUNT ACCOUNT
Semuanya memerlukan akses data yang sama dengan format record: Semuanya memerlukan akses data yang sama dengan format record:
Sebuah sistem perbankan yang mempunyai beberapa pemakai Sebuah sistem perbankan yang mempunyai beberapa pemakai (user), seperti kasir, pegawai kredit, manajer cabang, pegawai bank, (user), seperti kasir, pegawai kredit, manajer cabang, pegawai bank, nasabah, dll. nasabah, dll.
Kredit Kredit
Satu pendekatan yang dapat mendukung semua jenis akses adalah Satu pendekatan yang dapat mendukung semua jenis akses adalah dimilikinya banyak berkas yang berbeda. Setiap berkas di dimilikinya banyak berkas yang berbeda. Setiap berkas di organisasi untuk melayani satu jenis keperluan. organisasi untuk melayani satu jenis keperluan.
Maka untuk contoh sistem perbankan di atas harus ada: Maka untuk contoh sistem perbankan di atas harus ada:
File account yang organisasinya indeks sekuensial dengan nilai File account yang organisasinya indeks sekuensial dengan nilai key: key: ID untuk melayani kasir, pegawai bank & nasabah.
ID untuk melayani kasir, pegawai bank & nasabah.
File account yang organisasinya sekuensial dengan record di urut File account yang organisasinya sekuensial dengan record di urut
menurut: menurut: OVERDRAW LIMIT OVERDRAW LIMIT untuk melayani pegawai kredit. untuk melayani pegawai kredit.
File account yang organisasinya relatif dengan nilai key: File account yang organisasinya relatif dengan nilai key: SOCNO untuk melayani pegawai kredit.
SOCNO untuk melayani pegawai kredit.
File account yang organisasinya sekuensial dengan record di urut File account yang organisasinya sekuensial dengan record di urut
menurut: menurut: GROUP-CODE GROUP-CODE untuk melayani manajer cabang. untuk melayani manajer cabang.
File account yang organisasinya relatif dengan nilai key: File account yang organisasinya relatif dengan nilai key: NAME, SOCNO dan TYPE untuk melayani nasabah.
NAME, SOCNO dan TYPE untuk melayani nasabah.
Jadi kita mempunyai 5 file, semuanya mempunyai record yang Jadi kita mempunyai 5 file, semuanya mempunyai record yang
sama. Kelima file itu hanya berbeda dalam organisasi dan cara sama. Kelima file itu hanya berbeda dalam organisasi dan cara
aksesnya. aksesnya.Pengulangan data dari beberapa file bukan merupakan cara yang baik Pengulangan data dari beberapa file bukan merupakan cara yang baik untuk mengakses record dengan berbagai cara. Dan cara ini untuk mengakses record dengan berbagai cara. Dan cara ini memerlukan ruang (space) yang besar di storage dan kesulitan pada memerlukan ruang (space) yang besar di storage dan kesulitan pada waktu peng- update -an record secara serentak. waktu peng- update -an record secara serentak.
Untuk mengatasi masalah di atas, maka digunakan organisasi berkas Untuk mengatasi masalah di atas, maka digunakan organisasi berkas banyak key yang umumnya diimplementasikan dengan banyak key yang umumnya diimplementasikan dengan pembentukan banyak indeks untuk memberikan akses yang berbeda pembentukan banyak indeks untuk memberikan akses yang berbeda terhadap record data. terhadap record data.
Mungkin juga cara ini memakai banyak link-list terhadap record. Dan Mungkin juga cara ini memakai banyak link-list terhadap record. Dan sebuah indeks dapat dibentuk dengan beberapa cara, misal sebuah indeks dapat dibentuk dengan beberapa cara, misal sebagai tabel binary search tree atau B-tree. sebagai tabel binary search tree atau B-tree.
ORGANISASI INVERTER FILE ORGANISASI INVERTER FILE
Satu pendekatan dasar untuk memberikan hubungan antara sebuah Satu pendekatan dasar untuk memberikan hubungan antara sebuah indeks dan data record dari file adalah inversi. indeks dan data record dari file adalah inversi.
Sebuah key pada indeks inversi mempunyai semua nilai key dimana Sebuah key pada indeks inversi mempunyai semua nilai key dimana masing-masing nilai key mempunyai penunjuk ke record yang masing-masing nilai key mempunyai penunjuk ke record yang bersangkutan. File yang demikian disebut inverted file. bersangkutan. File yang demikian disebut inverted file.
Indeks inversi yang sederhana dibentuk sebagai sebuah tabel.
Indeks inversi yang sederhana dibentuk sebagai sebuah tabel.
Contoh: Contoh:
Inversi file ACCOUNT terhadap SOCNO menghasilkan indeks Inversi file ACCOUNT terhadap SOCNO menghasilkan indeks inversi. inversi.
SOCNO SOCNO ADDRESS ADDRESS
001234123
6 001234123
6 123456789
5 123456789
5 213823456
14 213823456
14 299167305
16 299167305
16 399042131 399042131
4
4 411625331 411625331
13
13 412631467 412631467
7
7 426135447
20 426135447
20 445062681
17 445062681
17 459463001
1 459463001
1 513014265
8 513014265
8 612305116 612305116
9
9 626311660 626311660
18
18 692122222 692122222
12
12 713214622
3 713214622
3 798392289
15 798392289
15 821346211
2 821346211
2 912346789
19 912346789
19 923146154 923146154
11
11 987654321 987654321
10
10 Gambar 3. Indeks Inversi Record dengan key SOCNO Gambar 3. Indeks Inversi Record dengan key SOCNO Indeks inversi tersebut telah di sortir menurut SOCNO. Penambahan Indeks inversi tersebut telah di sortir menurut SOCNO. Penambahan record file menyebabkan indeks inversi juga harus diubah. record file menyebabkan indeks inversi juga harus diubah.
Sebuah indeks inversi dapat dibuat bersama sebuah relatif file atau Sebuah indeks inversi dapat dibuat bersama sebuah relatif file atau sebuah indeks sekuensial. Sebuah indeks inversi dengan key SOCNO sebuah indeks sekuensial. Sebuah indeks inversi dengan key SOCNO untuk sebuah relatif file dengan nilai key ID akan memberikan sebuah untuk sebuah relatif file dengan nilai key ID akan memberikan sebuah file yang dapat diakses langsung oleh sebuah ID atau SOCNO. file yang dapat diakses langsung oleh sebuah ID atau SOCNO.
SOCNO SOCNO
ID
612305116 612305116
File yang mempunyai indeks inversi untuk setiap data field disebut File yang mempunyai indeks inversi untuk setiap data field disebut completely inverted. File yang bukan completely inverted tapi paling completely inverted. File yang bukan completely inverted tapi paling sedikit mempunyai satu indeks inversi disebut partialy inverted file. sedikit mempunyai satu indeks inversi disebut partialy inverted file.
Mengunakan Indirect Addressing Mengunakan Indirect Addressing Jika sebuah key dipakai untuk menentukan struktur storage dari file Jika sebuah key dipakai untuk menentukan struktur storage dari file disebut primary key, sedangkan key yang lainya disebut disebut primary key, sedangkan key yang lainya disebut secondary key. secondary key.
987654321 987654321 335812 335812 Gambar 4. Indeks Inversi Record dengan key SOCNO Gambar 4. Indeks Inversi Record dengan key SOCNO
386132 386132
923146154 923146154
686116 686116
912346789 912346789
112131 112131
821346211 821346211
511211 511211
626311660 626311660 641230 641230 692122222 692122222 387122 387122 713214622 713214622 198121 198121 798392289 798392289
324196 324196
310103 310103
001234123 001234123 291821 291821 123456789 123456789 208432 208432 213823456 213823456
ID
111111 111111
459463001 459463001
535218 535218
412631467 412631467 300123 300123 426135447 426135447 696132 696132 445062681 445062681
415631 415631
411625331 411625331
201431 201431
399042131 399042131
534216 534216
299167305 299167305
486212 486212
513014265 513014265 Sebuah variasi dari struktur indeks inversi adalah pemakaian Sebuah variasi dari struktur indeks inversi adalah pemakaian secondary key dan primary key dari indirect addressing. secondary key dan primary key dari indirect addressing.
Pendekatan ini membiarkan file yang direorganisasi dan Pendekatan ini membiarkan file yang direorganisasi dan restructure secara fisik tanpa menyebabkan indeks file. restructure secara fisik tanpa menyebabkan indeks file.
Pada contoh di atas, nilai SOCNO adalah unik. Setiap SOCNO dalam Pada contoh di atas, nilai SOCNO adalah unik. Setiap SOCNO dalam indeks inversi mempunyai record. Indeks inversi dapat juga dipakai indeks inversi mempunyai record. Indeks inversi dapat juga dipakai dengan key yang bukan unik. dengan key yang bukan unik.
GROUP-CODE GROUP-CODE BRANCH TYPE
ID
DT DT 001 001 111111, 201431, 310103, 686116 111111, 201431, 310103, 686116 DT DT 002 002 198121, 335812, 486212, 641230 198121, 335812, 486212, 641230
EA 001 324196, 534216, 535218 EA 001 324196, 534216, 535218
NE 001 415631 NE 001 415631 NE 002 300123, 696123
NE 002 300123, 696123 NW 001 112131, 208432, 511211
NW 001 112131, 208432, 511211 NW NW 002 002 291821 291821
WE WE 002 002 386132, 387122 386132, 387122 Gambar 5. Indeks Inversi Record dengan key GROUP-CODE Gambar 5. Indeks Inversi Record dengan key GROUP-CODE
Satu hal yang baik dari inversi file adalah beberapa pertanyaan di Satu hal yang baik dari inversi file adalah beberapa pertanyaan di bawah ini dapat dijawab tanpa akses data file, cukup dengan indeks bawah ini dapat dijawab tanpa akses data file, cukup dengan indeks inversinya. inversinya.
Apakah ada indeks untuk SOCNO = ‘414556233’ ? Apakah ada indeks untuk SOCNO = ‘414556233’ ?
Berapa banyak account dengan GROUP-CODE = ‘EA001’ ? Berapa banyak account dengan GROUP-CODE = ‘EA001’ ?
Berapa banyak account dengan BRANCH = ‘NE’ ? Berapa banyak account dengan BRANCH = ‘NE’ ?
Apakah BRANCH = ‘NE’ mempunyai TYPE = ‘001’ ? Apakah BRANCH = ‘NE’ mempunyai TYPE = ‘001’ ?
ORGANISASI MULTI-LIST FILE
ORGANISASI MULTI-LIST FILE
Suatu pendekatan lain yang memberikan hubungan antara sebuah Suatu pendekatan lain yang memberikan hubungan antara sebuah indeks dan data record dari sebuah file disebut organisasi multi-list indeks dan data record dari sebuah file disebut organisasi multi-list file. file.
Seperti sebuah inverted file, sebuah multi-list file mempunyai sebuah Seperti sebuah inverted file, sebuah multi-list file mempunyai sebuah indeks untuk setiap secondary key. indeks untuk setiap secondary key. Organisasi multi-list file berbeda dengan inverted file, dimana dalam Organisasi multi-list file berbeda dengan inverted file, dimana dalam indeks inversi untuk sebuah nilai key mempunyai sebuah penunjuk indeks inversi untuk sebuah nilai key mempunyai sebuah penunjuk untuk sebuah data record dengan nilai key, sedangkan dalam untuk sebuah data record dengan nilai key, sedangkan dalam indeks multi-list untuk sebuah nilai key mempunyai hanya sebuah indeks multi-list untuk sebuah nilai key mempunyai hanya sebuah penunjuk untuk data record pertama dengan nilai key. Data record penunjuk untuk data record pertama dengan nilai key. Data record mempunyai sebuah penunjuk untuk data record selanjutnya dengan mempunyai sebuah penunjuk untuk data record selanjutnya dengan nilai key dan seterusnya. Maka terdapat sebuah linked-list dari data nilai key dan seterusnya. Maka terdapat sebuah linked-list dari data record untuk setiap nilai dari secondary key. record untuk setiap nilai dari secondary key.
GROUP-CODE GROUP-CODE BRANCH TYPE BRANCH TYPE
ID
ID
DT DT 001 001 111111 111111 DT 002 198121 DT 002 198121 EA 001 324196 EA 001 324196 NE 001 415631 NE 001 415631 NE 002 300123 NE 002 300123 NW NW 001 001 112131 112131 NW NW 002 002 291821 291821 WE WE 002 002 386132 386132 Gambar 6. Multi-list Index for GROUP-CODE secondary key Gambar 6. Multi-list Index for GROUP-CODE secondary key
OVERDRAW OVERDRAW LIMIT LIMIT
ID
ID
0. 111111 0. 111111
100. 112131 100. 112131
200. 198121 200. 198121
250. 511211 250. 511211
Gambar 7. Multi-list Index for OVERDRAW-LIMIT secondary key Gambar 7. Multi-list Index for OVERDRAW-LIMIT secondary key
Gambar 6 dan 7, menunjukkan indeks multi-list untuk secondary key Gambar 6 dan 7, menunjukkan indeks multi-list untuk secondary key GROUP-CODE dan OVERDRAW LIMIT, sedangkan gambar 8 GROUP-CODE dan OVERDRAW LIMIT, sedangkan gambar 8 menunjukkan data file. Setiap data record mempunyai penunjuk untuk menunjukkan data file. Setiap data record mempunyai penunjuk untuk mengakses record selanjutnya. mengakses record selanjutnya. Record Record NAME NAME GROUP-CODE GROUP-CODE OVERD. OVERD.
Address Address ID ID LAST LAST FIRST FIRST BRANCH BRANCH TYPE TYPE NEXT NEXT SOCNO SOCNO BALANCE BALANCE LIMIT LIMIT 1 1 111111 111111 DEAN DEAN JOHN JOHN DT DT 001 001 201431 201431 459463001 459463001 100.50 100.50 0. 0. 2
2 112131 112131 AMORE AMORE CAROL CAROL NW NW 001 001 208432 208432 821346211 821346211 2311.20 2311.20 100. 100.
33 198121 198121 RICE RICE BESS BESS DT DT 002 002 335812 335812 713214622 713214622 -191.87 -191.87 200. 200.
4
4 201431 201431 PARKER PARKER OLA OLA DT DT 001 001 310103 310103 399042131 399042131 3142.93 3142.93 100. 100.
5 5 208432 208432 ANDERSON ANDERSON BARBA BARBA NW NW 001 001 511211 511211 123456789 123456789 95.26 95.26 0. 0. 6 6 291821 291821 ANDERSON ANDERSON BRENT BRENT NW NW 002 002 001234123 001234123 146.92 146.92 0. 0. 7 7 300123 300123 HART HART ALLIS ALLIS NE NE 002 002 696123 696123 412631467 412631467 3000.00 3000.00 100. 100.8 8 310103 310103 TAHOE TAHOE SEREN SEREN DT DT 001 001 686116 686116 513014265 513014265 243.63 243.63 0. 0. 9 9 324196 324196 BONES BONES IGOR IGOR EA EA 001 001 534216 534216 612305116 612305116 0.02 0.02 0. 0. 10 10 335812 335812 BEE BEE VERA VERA DT DT 002 002 486212 486212 987654321 987654321 88.72 88.72 0. 0. 11
11 386132 386132 ARC ARC JEAN JEAN WE WE 002 002 387122 387122 923146154 923146154 -89.98 -89.98 100. 100.
12 12 387122 387122 ELLS ELLS JOSHU JOSHU WE WE 002 002 692122222 692122222 10.95 10.95 0. 0. 13
13 415631 415631 BELLE BELLE ELLIE ELLIE NE NE 001 001 411625331 411625331 426.86 426.86 100. 100.
1414 486212 486212 MATTHERS MATTHERS ANN ANN DT DT 002 002 641230 641230 213823456 213823456 893.92 893.92 100. 100.
1515 511211 511211 SNUGGS SNUGGS JOHN JOHN NW NW 001 001 798392289 798392289 2814.12 2814.12 250. 250.
16 16 534216 534216 LOOMIN LOOMIN TIM TIM EA EA 001 001 535218 535218 299167305 299167305 296.12 296.12 250. 250. 17 17 535218 535218 ELLSWORT ELLSWORT NANCY NANCY EA EA 001 001 445062681 445062681 2814.12 2814.12 250. 250. 18 18 641230 641230 WELLS WELLS CHUCK CHUCK DT DT 002 002 626311660 626311660 -98.14 -98.14 100. 100. 19
19 686116 686116 SWORTH SWORTH LAUR LAUR DT DT 001 001 912346789 912346789 3216.16 3216.16 100. 100.
20 20 696132 696132 GUNNESS GUNNESS MARIO MARIO NE NE 002 002 426135447 426135447 95.93 95.93 25. 25. Gambar 8. Contoh Data File
Gambar 8. Contoh Data File Nilai key harus di urut, struktur indeks adalah tabel dengan indirect Nilai key harus di urut, struktur indeks adalah tabel dengan indirect addressing dan mempunyai hubungan data record yang disusun addressing dan mempunyai hubungan data record yang disusun menurut ID secara ascending. menurut ID secara ascending.
GROUP-CODE GROUP-CODE BRANCH TYPE BRANCH TYPE
ID LENGTH LENGTH
ID DT DT 001 001
111111 111111
4
111111 111111
7
7 100. 100. 112131 112131
8
8 200. 200. 198121 198121
1
1 250. 250. 511211 511211
4 Gambar 10. Variasi Index pada gambar 7, Gambar 10. Variasi Index pada gambar 7, menunjukkan length of linked-list menunjukkan length of linked-list
ID
Informasi tentang banyak record dalam link-list juga berguna untuk Informasi tentang banyak record dalam link-list juga berguna untuk mendapatkan cara yang terbaik dalam pengaksesan. mendapatkan cara yang terbaik dalam pengaksesan.
Contoh: Contoh:
Ada 3 cara akses yang potensial dalam menjawab pertanyaan: Ada 3 cara akses yang potensial dalam menjawab pertanyaan:
Daftar nilai ID untuk account dengan GROUP-CODE ='EA001' dan Daftar nilai ID untuk account dengan GROUP-CODE ='EA001' dan OVERDRAW-LIMIT = 100 ? OVERDRAW-LIMIT = 100 ?
Data file dapat dicari secara sekuensial, indeks GROUP-CODE atau Data file dapat dicari secara sekuensial, indeks GROUP-CODE atau dengan memakai OVERDRAW-LIMIT. dengan memakai OVERDRAW-LIMIT.
Mana cara yang terbaik ?
Mana cara yang terbaik ?
Pencarian secara sekuensial memerlukan akses sampai 20 data Pencarian secara sekuensial memerlukan akses sampai 20 data record, menggunakan indeks GROUP-CODE berarti akses sampai 3 record, menggunakan indeks GROUP-CODE berarti akses sampai 3
0.
2 Gambar 9. Variasi Index pada gambar 6, Gambar 9. Variasi Index pada gambar 6, menunjukkan length of linked-list menunjukkan length of linked-list
4
300123 300123
4 DT DT 002 002 198121 198121
4
4 EA EA 001 001 324196 324196
3
3 NE NE 001 001 415631 415631
1
1 NE NE 002 002
2
2
2 NW NW 001 001
112131 112131
3
3 NW NW 002 002
291821 291821
1
1 WE WE 002 002
386132 386132
OVERDRAW OVERDRAW LIMIT LIMIT
ID LENGTH LENGTH 0.
data record dan memakai indeks OVERDRAW-LIMIT berarti akses data record dan memakai indeks OVERDRAW-LIMIT berarti akses sampai 8 data record. sampai 8 data record.
Dari ketiga cara di atas, yang terbaik adalah mengunakan indeks Dari ketiga cara di atas, yang terbaik adalah mengunakan indeks GROUP-CODE. GROUP-CODE.
DEKLARASI BERKAS DALAM COBOL DEKLARASI BERKAS DALAM COBOL
SELECT ACCOUNT-FILE ASSIGN TO DISK SELECT ACCOUNT-FILE ASSIGN TO DISK
ORGANIZATION IS INDEXED ORGANIZATION IS INDEXED ACCESS MODE IS SEQUENTIAL OR RANDOM OR DYNAMIC ACCESS MODE IS SEQUENTIAL OR RANDOM OR DYNAMIC RECORD KEY IS ID RECORD KEY IS ID ALTERNATE RECORD KEY IS SOCNO ALTERNATE RECORD KEY IS SOCNO ALTERNATE RECORD KEY IS GROUP-CODE ALTERNATE RECORD KEY IS GROUP-CODE WITH DUPLICATES. WITH DUPLICATES.
SOCNO SOCNO
821346211 112131
798392289 511211
ID
Gambar 11. Contoh Hasil Program COBOL Gambar 11. Contoh Hasil Program COBOL
686116 426135447 426135447 696132 696132
912346789 686116
641230 912346789
626311660 641230
534216 445062681 445062681 535218 535218 626311660
299167305 534216
511211 299167305
387122 411625331 411625331 415631 415631 213823456 213823456 486212 486212 798392289
112131 713214622 713214622 198121 198121 399042131 399042131 201431 201431 123456789
692122222 387122
324196 987654321 987654321 335812 335812 923146154 923146154 386132 386132 692122222
ID 459463001 459463001 111111 111111 821346211
310103 612305116
513014265 310103
291821 412631467 412631467 300123 300123 513014265
001234123 291821
208432 001234123
123456789 208432
612305116 324196