 Dear students, today we are going to discuss the lecture number 35 of the database management system course and as you know the course code is CS403. In the lecture number 34 we discussed different storage devices because when we are working with the databases obviously we have to face, we have to encounter, we have to use different types of storage devices. So if we have the idea of the properties or the characteristics or features of different storage devices then we will be able to manage our database in a better position because we will be placing the data at proper time at the proper form of storage media or the storage device. After that we discussed a particular arrangement of the disks called the RAID. RAID stands for redundant array of inexpensive disks. RAID arranges multiple disk drives in such a form that it gives the impression of a single virtual drive. The advantage of RAID is that it gives faster processing speed and different architecture different arrangements of RAID they give different level of fault tolerance as well. So RAID is the new technology that is being used in the modern systems nowadays. At the end of the previous lecture we were discussing different file organizations. File organization means how do we place, how do we store data in different formats on disk and we studied the three major types of file organizations. One is sequential file organization, second one is index sequential and third is random or hash based. We discussed the sequential file organization in the previous lecture. Today we will start our discussion from the indexed sequential file organization. So let's start today's lecture. Sequential files provide access only in a particular sequence. The thing is that we discussed last time that the time you create the sequential files the data in the sequential files is stored in a particular sequence. On the basis of the value of a particular attribute and normally this attribute is the primary key. This means that in sequential files your record store will be stored on the primary key value base. The second feature is that whenever we want to access the records, we need to access them at any cost. We need to display them or do other things like computation. For example, whenever you have a general billing system for utilities, you need to access all the records stored there. So every month your meter's reading is fed there and even for this process, you need to access all the records of all the customers of the client from the database. So this is also an access format. After that when you have to compute the bill and calculate the bill, then it will be the same again that all the records will be accessed and after that every bill will be individually calculated and then the bill will be placed there. Similarly, when you want to print the bill, then it will be the same that all the bills will be accessed and all the records will be accessed and they will be printed in there. So these are different types of processing. These are the examples of different activities that we want to perform on a file. The thing is, if we are storing the file in the sequential file organization, then when we want to access them, we want to read them, like I have given you examples for any work, then in the case in which you have stored the records, you will get them in the same arrangement. First, second, third, and like that. If you note one thing that I have given you examples, like I have given you examples of different billing systems, these situations are such that most of the processing that we have mentioned, it can be possible that the sequential file suits. Why? Because you have to access, you have to process all the records, one after the other, obviously. So there is no record, it is not that you have to do something, do not do something. When you have to enter the bill, or the current reading, you have to enter for all the records, for all the customers. Right? When you have to calculate the bill, you have to perform that process for all the customers. And same is the case with the printing of bills. So for this situation, when you have to process all the records, all the records that you have in your file, then in that case, sequential file organization may suit the environment. In that case, it is possible that you go for the sequential file organization. Okay, sequential file organization's major drawback is that it provides you only the sequential access. But the advantage of that is that it requires only the necessary or the required storage. It occupies only the required storage. The extra processing and storage that is not involved, which we will see in other cases, that it can be. So sequential access, if we want, then storage-wise, or processing-wise, sequential file organization is efficient. But that does not suit many applications since it involves too much time. Too much time is required that in such environments, in such situations, where you have to access not all the records, but some particular records. And based on definitely some condition, when we want to select, when we want to access a particular row or certain rows, a certain set of rows, in that case, how do we identify those rows? How do we distinguish those rows? And that we read that through a select condition, when we used the where clause, so this is what we have in real life, that we not always need to access the record in a sequence from first to last. But there are many situations when we want to access one record or multiple records directly. For example, as we have just given you the example of utility bills. You receive the bill, but first of all, you have no problem in the bill, let us say that the amount is less, if you are lucky, then the amount is less, you tell them that the amount is less. In that situation, the billing system or the people working there, they want to access only your record because they have to modify, they have to make some change in your particular record. And if you expand this example a little bit, that in real life, when you receive bills every month, then in many bills, there can be some problem in some way, so if you think that every month, obviously many people would come with their bills to the people dealing with these bills, they will tell them that they will fix the bill, they will change it and so on. In addition, a person is changing his address, he wants to temporarily disconnect the bill or many other activities. In all situations, it is not the situation that you want to access all the records, rather in all these situations, you want to access some particular record and in many situations, a single record. Now, the thing is, if you want, if you have stored your records in a sequential file organization manner, what will happen is that obviously, if you have thousands of records, then to fix your bill, they will have to reach your record, because from there, they will go and access it and make some changes, so if there are sequential file organizations, then they will have to start reading from the first record. First of all, we say that on the basis of meter number, you have stored the record and meter number starts from 1 and let us say there are 100,000 records, there are 1 lakh records. So, in 1 lakh records, first of all, your meter number is 17,618, now to reach to the record number 17,618, in the sequential file organization, all the records will have to be read again and again. The procedure will be that you will read the first record and your required record number, which we have also said that meter number is 57,000 something, that first record number will compare to that meter number, if this is our required record, then we will read the next record, next, next, next, and in this way, you will have to access all the records before your record, that you will have to read the required record number to reach there. And there is an interesting situation in this, that first of all, in this way, you put a check, you want to access such a record that it is not there even if you entered it wrong, it was not there, in that case, if you have a store in key order, then when you cross the value of that key, for example, if you are looking for record number 50,000, then record number 50,000 was not there, so until you read all the records, until you cross the value of 50,000, let us say you reach 50,005, now if you reach 50,005, the value of 50,000 is bigger, when you reach there, and the data store is at your base of the key, then you will realize that this record actually does not exist. So, these are the situations, these are the scenarios, in which you see that you have a system, the sequential file organization is not suitable for that, and you may find hardly any application, because you have a sequential access required or sequential access that is sufficient, in most of the today's applications, even in that case, there are many situations that when you want to access the records directly, or sequential file in this situation, may when you want the direct access is not suitable, I have explained it to you. So, we need some mechanism for direct access, direct access file organizations, it only supports the sequential access, and that does not suit many applications, so those applications require some mechanism of direct access to a particular record, one or multiple and notice that it is not necessary that in a place where we need direct access, we do not need sequential access, it does not mean that for most of the applications, you need basically both types of accesses, sequential and direct. So, the solution of sequential is in the form of sequential file organization, when we talk about the direct access, for that type of access, you have got two options, one is indexed sequential file organization, and the other is direct file organization, these two file organizations they support the direct access to the particular record. And one thing you will see, what does it mean directly, it means that if you need a particular record, then in the case of sequential file, if you want to access that particular record in a sequential file organization, then you will have to do a lot of accesses, accesses means that you will have to perform many reads on the disk, then you will reach on your required record, so notice that when we talk about sequential file inefficiency, why you will have to read a lot to reach your required record, when you have to read a lot, you will reach your required record when you have to read a lot, but the direct file organization, in that you can directly reach your record, in that you will have to read all the records in the sequential file organization, now it is not that there is no magic here, that it will reach the place with a knife, no, in that we have direct file organizations, maybe you will have to make multiple accesses, multiple you have but if you compare them, there is a lot of difference, there is a huge difference between the two, as I have given you an example that if you have to read 50,000 records in one lakh records, if you have to read 50,000 in a sequential file, then it is possible that when we talk about index sequential file, in that case you have to read 10, 15 or 20 records and you reach your required record, now see where 20,000 and where 50,000 and if you even talk about direct file organization, then there is a magic trick, that is it, it is possible that in one read you go straight away to your required record, how? we will see, now first we are going to discuss the indexed sequential file organization, as the name suggests, records are stored in a sequence, generally with respect to the primary key, but index is also maintained to provide direct access, as it is said that this is indexed sequential, so one thing about this is that records stored here in sequence, similarly, secondly index is being maintained, so if we mix these two words together, we can also say that this type of file organization, it supports both types of accesses, it supports the sequential access, why? because the records are stored in a sequence, so if you have this indexed sequential file organization, records are stored in a sequence and mainly of the primary key sequence, in that case, you will get all records, but the other beauty is that if you want to do direct access, in that situation, you do not need to read all the records in sequence, rather then you consult the index, index is a special file, sort of a table that lists the key value for each record and the address of the record, and the concept of index is obviously familiar to you, if you look at the book in the beginning, then it is basically like an index, so you will directly open that reference page and reach there, if you do not have an index, for example, you have a database book, in that you have to look at the SQL command or the select command, so if the index was not there in the beginning, then what would have happened is that you would have to look at each page, you would have to read all the pages, and then you reach that page where the select command of SQL is present, but if this is your table of contents, then in that you can quickly find in two or three pages where is the select statement, where is the select command, where is the chapter of SQL, and the concept of the index is smarter than that, which I am giving you a book example, I am giving you a book example because it is easier to understand and you are familiar with it, so in that you will see the table of contents in the beginning, and from there you will find, in two or three pages there will be the contents of it, from there you will find the select statement of the SQL is on which page, so when you have seen that page, let us say it says 339, so then you open the pages, you open the book a little and go straight to page number 339, and there is the select statement, and if it was not there, if you do not refer to it, then you will have to go through all the pages, and you can feel that how much difference it makes, look at some pages you have to open in this case too, obviously you have seen the contents page, then obviously you did not go directly to the 339 page, first I opened 300 pages, when I opened it again, I opened 400, then you go back, ultimately you read 339, but think about how many pages you have to open in this process, maybe 10, maybe 15, maybe 20 or 25, but if you had sequentially done it, then what would have happened? 100 pages, I hope you have understood something, the track number in the address, now what can be the address, what can be the shape, we do not go into this discussion right now in this detail, because from the address, what will be its precise shape, what will be the format, this is not our concern, but we have to know that there is an address there, and for the simplicity of this course, we understand that it will be the track number, or if the score is smart then it can be the set number, but let us say we also understand that it will be the track number, and what is the track, this we discussed in the previous lecture, you will remember that, we said that when there is a hard disk, it stores data in a circular path, and those circular paths are called the tracks, so look, now obviously it is not necessary that one record is stored on one track, this is not necessary, it is possible that today's disk also gives a lot of space in a track, so it is quite possible that one track stores, let us say 100 records, or let us say 50 records, in your track there are 50 records stored, so if this means that in 50 records, if you are giving the track number reference, then when you look at 50 records in the index, then the key value of 50 records is written, and what is written against them, one track number is written, because we said that it can be smart, and it can be closed, but if we suppose the track number only, this means that you will get only one track number for 50 records, so when you reach that track, then to access your particular record, it can be that you have to access it sequentially, but only within that record, that at most contains 50 records, in case of direct access requirement, index is accessed rather than the file itself, that the base of which your file is stored, is obviously the primary key, and the value and against that record address, which is the primary key, will be stored. So when you want to access direct access, first you said that select star from client, where customer ID is equal to 57,618, so now in this, see this is a select statement, and there is a condition, and what is the value of the condition, that is the customer ID, and customer ID because this is our primary key, there is an index on it, so the dbms will consult the index file, it will go to the index, and the key value is 57, it will search for it, now the question is that, how will the searching that is in your index, how will it be, how will it be, we will read it forward, but now let me give you an example, that first do it, that it is sequential, first do it is sequential, that means you have all the keys, we have 1 lakh records, 1 lakh records of only keys, and their track number is stored, the face of a table, now you see what is the advantage of this, what is the advantage of this, the advantage is that, when you will read it once, first you will read it once, you will read one track, you will read the whole track, so in that one track, you have that, first you can say that, you can say that, 2000 will be the entries, so if you have to compare it sequentially, then you have to read it once, that means you can compare 2000 records, well this is the worst scenario, that when you are doing such sequential, but practical you do not do sequential, what do you do, come, location of the record is obtained from index, and then the record is accessed from that location, that is what we have done, and first let us say that, now this is our disc structure, disc is always on the circular path, but here for simplicity, we have drawn it like this, look at this on the left side, you can see the track number, track 1, track 2, track 3, and like that, after that, here you see that, on one track, we have here, it depends on how many records in one track, it depends on what is your record size, after that you can fix something, but the first thing that matters, that is the record size, if our track capacity is 10,000 bytes, if the track capacity is not enough, then in that case, if your record size is 1000 bytes, then you can get 10 records in one track, so this is a simple example, you can see that, your records are stored in a sequence, in ascending order, that is 101, that is the student's file, so student 101, 104, 110, 115, 120, and like that, look at this, that it is not necessary, that you have got all the values in a sequence of the primary key, for example, if it is 101, then after that it is 104, not in 2-3 days, if you see, after 104, we have got 110, that is not there, well, it may be due to the reason, that we did not use these numbers, that is, we did not assign these people, after 101, in that system, in that organization, only S104 was assigned, that is the reason, the second reason is, that 102 and 103 are not yet assigned, or even if they have been assigned, their data is not entered into the database yet, so this situation, the second one, this is a little different, because in the first situation, when you do not use those numbers, this means that there is no chance that you are going to have these numbers here, to store here, but when there is a second situation, in which you have not stored your data, or you have allocated it, but you have not stored the data yet, and you have not allocated it, there are chances that you will have those numbers to store, later sometime, in this database. Now, if you talk about a track, we have already got 5 records, if we take the track 1 example, then what will happen? First of all, in this situation, we have got S102, then what will happen? Well, this is a problem, that we are going to discuss, the solution that we will discuss, you just, I had to tell you that this is a problem. Now, this is an index file, okay? This is an index file, it is an example of the records stored behind us, for them. Now, you see, in this example index, you find that there is entry for every record in your table, in your database table. Now, what is happening in that, that the number of records, that the gain is its address, that it is in that track. Now, in this, as you want to access a record, first you will come here, in the index file, you will read all of them, okay? And where you will search your key sequentially, in this case. Now, you will say, that you have access here, then the efficient one, which I have already given you, that when you are only in the index file, even in this case, which is the index file in front of you, in this case, even if you are just storing the key value and the address, then the size is very, very small. In that case, there will be a lot of entries in one track. There will be a lot of entries, so you will read it once, and you will get it in RAM or in the processor. As I said yesterday, that you will get it in RAM, and it will go in cache from RAM. When the thing is in the cache, so then processor has not to waste the time, which is the waste of time, when it has to read the data from the disk. In this case, you have a large portion of the index file, a lot of records about the data, that goes into the cache. From there, the data available to the processor, the factor of time wastage, that is involved, that is included, when there is a disk access involved. Because the disk access, is very slow from your RAM, and the cache access is very slow. So, that means, if this is also a solution, then it will access the sequence, and find the record address. When it gets the address, it will directly access the record on that track. Well, this is a very simple example of an index file. An index that stores entry for each record, is called dense key and index. As we saw in the previous example, that the key value of every record was against an entry, it means that it is a dense key index. One entry for each record is wastage, since within the track, search has to be sequential anyway. I have already told you that, that our unit, whatever is our smallest unit, which we can access, it is not necessary to store a record in that unit. In that unit, as we have taken a track here, now a track can be that, 20 records are coming. And as we are taking an example here, I have shown 5 records. So, against the keys of 5 records, you have to get a track number. And then, in that particular track, you will have to search for your own required record, in a sequentially. So, then 5 entries is a wastage. Because, it is the same thing, that the benefit of 5 entries is that, you will directly take a record. It is not like that. In fact, you have to sequentially search for a record. So, that is why, we have said that each entry is not required. So, the solution is that, non-dense index, rather than entry for every record, entry for the record with the highest key value in the track is maintained. Index size reduces, search also gets more efficient. Look, as you have seen in that, index, dense key index, that you get only one track number for 5 records. Now, you have to access any of these records. So, what will happen? You will get track number 1, first, or let's say, track number 10, whatever the track number is, since you may find the 5 records, in those 5, you will have to search sequentially. So, non-dense key index, what you do is that, rather than storing the entry for every record, what you do, you store one entry for one track, one thing, and the second thing is that, the highest key value in a track, you store it. For example, we have an example, if you see here, 120 is the maximum value in the first track. We do this, that we have to make 5 entries, we place a single entry, and that would be 120. The key value of the record with the highest key value, and let's say, 1. Now, what will happen? Now, what will happen is that, when you, and similarly, have all the entries for all tracks, then first of all, if we had 1,000,000 records, then in the case of 1,000,000 records, what was it that, in the case of the dense key index, we had 1,000,000 entries in the index file. But when we, in this example, first of all, if we have 5 records on a track, then the entries in the index file, they are reduced to exactly divided by 5. What will happen? If every track has a country, then 20,000 entries will come. So, look here, there is a huge difference, that the size of your index file has been reduced. This is the benefit. The other thing is, now the question is, how will you do the search? Now, the advantage of the search is, that in the dense key index, you had to search for the sequence, again and again. This is not the case. In this, you will do, that whatever record you have required, you will compare that value, that you have required, with every entry of the non-dense key index. And until you reach an entry like this, whose value is not greater than your required value, you will keep skipping. That is, what will happen? First of all, the record number required is of S220. And if it is required of S220, then here we have an example, that when you see the first entry, it will be written there, 120 and 1. This means, that the maximum record store in track number 1, is 120. For such reasons, you read the entry of the second track, there is 138.2. What does it mean? That the record store in track number 2, their maximum value is 138. Now, the advantage of this is, that you have only compared two entries, what is the benefit? That you saved the effort to read two tracks, on the one hand, on the other hand, on the sequential file, you have an advantage, that you saved two tracks. The second benefit is, if you compare it with the index of the dense key, that you have to compare 10 keys, all the time, then you realize that, our record is not yet required on track 2. But if you compare only two keys, you realize that, our record is not required on track 2. So, while doing this, first thing we have an entry, like 250, or track, let's say, 35. And this was the first entry from 220. So, you will realize that, if our required record was 220, then 220 would be on track number 30. You go directly to the track number 30, there are 5-6 records, you read them again and again. If your 220 is done, then it will be on track number 30. If you don't get these 5 records, then this is guaranteed, that the record is not in this file. Otherwise, if you had read all the records, then you would have been in trouble. Now, this can be hardly possible, that after 8, 12, 13 accesses, or after 8, 13 reads, you realize that, if you don't get them, then you realize that the record doesn't exist. Index size reduces search, also gets more efficient, but how? Now, as I have just explained, this is the same data store we have, the same example, which we had earlier, which was in the index of dense. Now, here, what we have at the bottom, that is basically a non-dense index, that is basically a non-dense index, on the left side, it says highest on track, and on the front, as you can see, on track 1, the highest record is 120, so it says 121, 138, 153, let's say you want to access record number 150, then you will have to read 121, which is bigger than 150, that means there is no record on track 1, then when you go to track 3, in the index, they said 153 and 3, it means that if your file contains the record number 150, then it has to be on track number 3. If you go directly to track number 3, then you will have to read all the records, and when you reach 150, there is your record. Overflow in Tracks Dear students, as you just saw, when you are entering the data, it is not always necessary that you receive the data to enter in the precise order of, in a precise sequence of the key value. As you just saw, there are gaps. Obviously, when you are entering the data, as we are showing the diagram, there are three tracks. Obviously, when you place the value on track 1, then it will be on track 3, and then on track 3. Now, what is your index sequential file organization? In that, the sequence of the key has to be maintained. Now, the first example is that you are going to store records. You have stored your first record. It was S101. You have stored it on track 1. After that, you will have stored it after S101. S105. But let's say, after this, S103. Now, if you maintain the sequence, then S103 has to be stored before S105. So, in order to maintain the sequence, S105 will be pushed forward. And the empty space will be stored in S103. Why? To maintain the sequence of the key value. Because, when you have to do sequential access, then you can do sequential access in the same case. Otherwise, if it is here, then you will know that it is on track. Because it was there at that time. So, the key value is the sequence that you maintain. Obviously, you can't force it. You can't force it to give you data in the key sequence. Well, you can tell them that it is better if you give us the data in the key sequence order. But if you don't give it, then you can't say that we won't go ahead. It can't be like that. So, in that case, it is better if you get the order. If you don't get it, whenever you receive a value that is smaller than the entered value, then you will have to push certain values or mine it. If you are doing the data enter, it has a lot of jambles in this way. So, in that case, when your data entry is there, it becomes inefficient. So, it is better to arrange your data before entering into the computer so that you can sequence it. That becomes very smooth then that the first record is like that. But, you cannot avoid it in all situations at least. In that case, if the track is full, and still something comes in that has to be stored on that track. This is a situation that is called overflow in tracks. This means that a track is full and then a record comes that has to be on that record. For example, we have the maximum key value that is 120. Now, 118 cannot go to the next track because 120 is on track 1. 118 has to be stored Now, if there was a place we would have pushed the 120 forward and placed 118 there. But, the track is full there is no space there. This is a situation that is called track overflow. Record is stored on that track but there is no space there. These are some examples. As we have seen before we do not have all the keys and there are gaps there. One way to handle this is that you anticipate that beforehand. You anticipate it to be overflowed. What you do? You leave some space in the tracks. You do that you leave some blank records there. What happens in that is that we have arranged the same records that we have entered and you can see the fifth record there was 120. 120 we have moved it to the second track and in track 1 we have placed a place for a blank record. What is this? This is to cover overflow if it happens on any track. In all the tracks you reserve some black space for the records that encounter the overflow situation. So now first of all we had this situation and we have a record that is like 108. 108 is the place in the track because it is less than S115. S115 is the highest record in track 1 because S10 is smaller than S115 which means it has to be stored on the track number 1. Since in order to maintain the sequence of the key it has to be stored before even S110 because S10 is smaller than S110 because it is bigger than S104 because the proper place is already filled. What you will do you will push S110 and S115 forward. As you can see S110 is now on the fourth position and S115 the place that was left as blank before now S115 has been moved to that place and the place that has been emptied by the movement of these two records and that was the place of the S110 you can see your S108 The advantage of this is that your records they are still maintaining the sequence of the key and now if you want to access the records then you will see that all the records are similar. This is how the records are inserted into an index sequential file. We have got a solution for a certain problem and that was the overflow problem but the thing is is limited one it caters our problem it solves our problem up to a certain extent meaning you can see that one record overflowed so it adjusted but what about if another record comes for the same track that is a problem then and see what is the solution to solve this problem What is the solution? First of all you have adjusted your track 1 First of all you have another record which was of track 1 but you cannot avoid it You cannot do this You have to adjust that Now the solution is that all the records are full Now you have to create a place in the second track which is the last record move it to the second track and after moving to the second track you have to place the record but what if second track is already filled then you have to move the record to the third so that the second track place the record but what if third is also already filled you will go to the fourth but what if fourth is also filled fifth, sixth and like that This means that in this situation you have to have 60,000 records and you have a record in which you have to move all the records and then you have to I hope you have understood the problem the solution that we have studied so far it caters our needs up to a certain limit after that the way this solution handles our problem that is very very expensive very very inefficient very very time consuming the solution of this problem is that in the index sequential files we have overflow area overflow area is like that is sort of no man's land type in that all your records which overflow from your tracks all of them they are moved to the overflow area that is their entries and then when you move an entry of a track in the overflow area you put your own track where you put a link in the overflow area there is an entry of this track so if you are looking for a record then you do not get it then you come to the overflow area we have explained it in the diagram we have a situation where we have the records entered and you see all the tracks in the maximum capacity we have got an overflow area if you see the overflow area this is a sort of disk space which you have reserved as much as you can see the overflow area does not mean that you start using it what you do you start entering records in different gaps and then you start getting records between the gaps because of this your entries will move away from your track in the overflow area whenever you use this overflow area it will have inefficiency in it why? for example if you look at this scenario the highest in the track one was 115 after 115 if you look at this we have 103 when 103 came that means 115 is out after this 109 so your 112 is also out now the situation is that the highest record in your track is S110 but the overflow area the first record which belongs to track one is S112 S112 is related to S110 so from S110 we will get a reference to record S112 and in S112 if you look at the reference it is written before S112 it means that the record number one is the next record of this track so when you success the sequence it will reach 115 and if you see the pointer along with the 115 there you see 0 this means that this is track one's last record so if you look at track 2 in track 2 after 128 you will get 130 and if you look at 130 this means that the next record which is in overflow area is record number 5 and it is written on 5 with 131 and in track 3 you will get 140 which is the fourth record and it means that there is no other record this is how the overflows in the tracks are handled the effect of this change will be on index now this is the form of extended index now what are the entries you are saying that on track 1 you have the highest key is 110 if you look at the track the record number 110 is stored and that is the highest value but the next entry is the highest key in overflow area for track 1 that is 115 so if you look at the address of S112 see the highest key is stored but along with it your first record your first record which is related to track 1 and it is in overflow area that is in the third place in the overflow area so this address is on this position in overflow area so that you reach there then you will have sequential access of all the records the S128 is the highest key in the track itself and S131 is the highest key value in the overflow area for track 2 and the address of 130 because 130 is the next record after 128 similarly you have the same data about the third record now see when you have this situation as soon as you enter the record whether it is in overflow area then according to that the entries of index will be adjusted and you should have an idea that if you enter an index sequential file if you do not store the data in the sequence then what is the problem with that there are so many over it but if you enter a simple sequence then what will be the advantage that your record is stored in a sequence every track in the overflow area will be empty whether you call it wastage but for efficiency that is fine that all records are in sequence and you will never have that but if you do not store records then this will be adjusted but more over it that introduces inefficiency Dear students we will wind up today's lecture today we have the same type of file organization that is the index sequential file organization we discussed that we studied different features of the index sequential file and that is mainly that it supports the sequential as far as as well as the direct access so you get both the benefits but what is that is the creation and the maintenance of the index file and when I told you that this is the advantage that there is no over head involved here you have seen in terms of storage and in terms of maintenance there is an over head involved and you have seen in the last that if you do not properly manage the index sequential file then it can involve too much over head I hope you have understood all the series and when you do data entry then you will know what is the benefit of entering the proper sequence the rest of the discussion will be in the next lecture Allah Hafiz